2014-12-24 55 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

相關問題