2015-03-08 6 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 один, получите файлы, закажите их с использованием свойства DateID, а затем запустите команду rename op. Вернитесь сюда, когда у вас возникла проблема с вашей попыткой. – Steve

ответ

2

Я думаю, что это должно сделать трюк. Используйте Directory.GetFiles(..) для поиска определенных файлов. Перечислите результаты с помощью a для ..each и move (aka rename) файлы к новому имени. Вам нужно будет настроить sourcePath и searchPattern, чтобы работать на вас.

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 

В вашем названии вы указываете что-то о хронологическом порядке, но в своем вопросе вы никогда не упоминали его снова. Поэтому я сделал еще один пример: заказываю файлы по созданиюTime.

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 

Я никогда не делал Lambdas на VB.net, но проверял свой код, и он работал по назначению. Если что-то пойдет не так, пожалуйста, дайте мне знать.

+0

Отлично, это точно то, что я хотел :)! Хорошего дня :) – Freshman

Смежные вопросы