2014-12-24 19 views
1

对于那些在vb.net有丰富知识的人,请帮助我。如何在vb.net中逐一移动文件并将其从一个目录重命名为另一个

我必须制作一个程序,将图像(以jpg格式)从一个目录移动到另一个目录,但在此之前它将首先重命名一个文件,然后再将它移动到目标文件夹中。我需要这样的,因为每次它重命名文件它将保存到数据库(MySQL)

我已经有一个程序,将所有jpg文件移动到另一个目录,但这不是我所需要的。

请我需要你的专业知识和代码。

我不是评论


的OP的举动方法在vb.net的好:

Dim sourceDirectory As String = TextBox1.Text 
Dim archiveDirectory As String = TextBox2.Text 
Try 
    Dim jpgFiles = Directory.EnumerateFiles(sourceDirectory, "*.jpg") 
    For Each currentFile As String In jpgFiles 
     Dim fileName = currentFile.Substring(sourceDirectory.Length + 1) 
     Directory.Move(currentFile, Path.Combine(archiveDirectory, fileName)) 
    Next 
Catch e As Exception 
    Console.WriteLine(e.Message) 
End Try 

回答

1

如果使用System.IO.File.Move你可以选择在移动文件的同时重命名该文件。我不知道你如何确定新的文件名是什么,所以我建议的最好的方法是查看我给出的MSDN链接中的示例代码。

从上面的链接:

移动指定的文件到新的位置,提供指定一个新的文件名的选项。

File.Move (sourceFileName As String, destFileName As String) 

添加例如基于OP的评论显示如何重命名文件:

Dim sourceDirectory As String = TextBox1.Text 
Dim archiveDirectory As String = TextBox2.Text 
Try 
    Dim jpgFiles = Directory.EnumerateFiles(sourceDirectory, "*.jpg") 
    For Each currentFile As String In jpgFiles 
     Dim fileName = Path.GetFileName(currentFile) 
     Directory.Move(currentFile, Path.Combine(archiveDirectory, Path.GetFileNameWithoutExtension(fileName) & ".old")) 
    Next 
Catch ex As Exception 
    Console.WriteLine(ex.Message) 
End Try 
+0

昏暗sourceDirectory的String = TextBox1.Text 昏暗archiveDirectory的String = TextBox2.Text视野更清晰 尝试 昏暗jpgFiles = Directory.EnumerateFiles (sourceDirectory, “* .JPG”) 对于每个currentFile作为字符串在jpgFiles 点心文件名= currentFile.Substring(sourceDirectory.Length + 1) Directory.Move(currentFile,Path.Combine(archiveDirectory,文件名)) 下一页 Catch e As Exception Console.WriteLine(e.Message) End试试这是我刚刚找到的移动文件的代码它也在MSDN样本上。请帮助 – tris

+0

任何移动命令都会让您选择在移动文件时重命名文件。目标文件名不需要与源相同。我将举一个例子来改变文件扩展名。仍然不确定你的重命名方案是怎么样的。 –

+0

也请不要在评论中转储代码,这是非常混乱和难以阅读。您随时可以编辑您的问题以添加您的代码,然后发表评论以引导我们关注您的更改。 –

1

,因为你有代码,移动文件到文件夹,我会建议重命名重命名已移动的文件的功能。

Rename(Application.StartupPath & "\Images\" & oldname.Text & "", Application.StartupPath & "\Images\" & newname.Text & "") 

,只是为你的知识函数从一个目录复制到另一个文件(而不是移动)

FileCopy(sourcefilename, destinationfilename) 

希望它会帮助你

+0

昏暗sourceDirectory的String = TextBox1.Text 昏暗archiveDirectory的String = TextBox2.Text 尝试 Dim jpgFiles = Directory.EnumerateFiles(sourceDirectory,“* .jpg”) For Each cu rrentFile作为字符串在jpgFiles 点心文件名= currentFile.Substring(sourceDirectory.Length + 1) Directory.Move(currentFile,Path.Combine(archiveDirectory,文件名)) 接着 卡子E作为异常 Console.WriteLine(e.Message ) End试试这是我移动文件的代码,但是我会在哪里重命名它的代码? – tris

+0

将Directory.Move(currentFile,Path.Combine(archiveDirectory,fileName))部分代码重命名后的代码应该工作。同样,上面的注释移动命令提供了选项,以便在移动的同时重命名文件。也尝试这些方法。 –

+0

谢谢AKHIL你和马克:)俩给我做什么:) – tris

相关问题