2015-03-08 212 views
0

我不知道是否有可能到一個文件夾中的所有文件用一個簡單的程序重命名,用vb.NET重命名文件夾

中的所有文件

我很綠,不知道這甚至有可能。 比方說有一個包含文件的文件夾:

Text_Space_aliens.txt,fishing_and_hunting_racoons.txt和mapple.txt。

使用一些憑據:

Dim outPut as String = "TextFile_" 
Dim fileType as String = ".txt" 
Dim numberOfFiles = My.Computer.FileSystem.GetFiles(LocationFolder.Text) 
Dim filesTotal As Integer = CStr(numberOfFiles.Count) 

,纔有可能重新命名這些,無論以前的名字,例如:

TextFile_1.txt,TextFile_2.txt & TextFile_3.txt

在一個操作?

+2

使用FileInfo類和DirectoryInfo類,獲取文件,使用desidered Date屬性對它們進行排序,然後啓動重命名操作。當你的嘗試有問題​​時回到這裏 – Steve 2015-03-08 18:41:30

回答

2

我認爲這應該做的伎倆。使用Directory.GetFiles(..)查找特定文件。枚舉for..each和move又名)文件的結果爲新名稱。你將不得不調整sourcePathsearchPattern爲你工作。

Private Sub renameFilesInFolder() 
    Dim sourcePath As String = "e:\temp\demo" 
    Dim searchPattern As String = "*.txt" 
    Dim i As Integer = 0 
    For Each fileName As String In Directory.GetFiles(sourcePath, searchPattern, SearchOption.AllDirectories) 
     File.Move(Path.Combine(sourcePath, fileName), Path.Combine(sourcePath, "txtFile_" & i & ".txt")) 
     i += 1 
    Next 
End Sub 

在您的標題中,您按照時間順序介紹了某些內容,但在您的問題中,您再也沒有提及過它。所以我做了另一個例子由creationTime排序文件。

Private Sub renameFilesInFolderChronologically() 
    Dim sourcePath As String = "e:\temp\demo" 
    Dim searchPattern As String = "*.txt" 

    Dim curDir As New DirectoryInfo(sourcePath) 

    Dim i As Integer = 0 
    For Each fi As FileInfo In curDir.GetFiles(searchPattern).OrderBy(Function(num) num.CreationTime) 
     File.Move(fi.FullName, Path.Combine(fi.Directory.FullName, "txtFile_" & i & ".txt")) 
     i += 1 
    Next 
End Sub 

我從來沒有在VB.net做過Lambdas,但測試過我的代碼,它按預期工作。如果出現任何問題,請告訴我。

+0

完美,那正是我想要的:)!祝你有美好的一天 :) – Freshman 2015-03-08 18:58:39