VB.net переименовывает каждый файл в каталог - PullRequest
0 голосов
/ 19 января 2019

Я хотел бы переименовать все мои файлы в одном конкретном каталоге.Все они получат одинаковое расширение.Я попытался использовать цикл for:

For Each s As String In IO.Directory.GetFiles(Environ("PROGRAMFILES(x86)"), "*", IO.SearchOption.AllDirectories)
        Try
            My.Computer.FileSystem.RenameFile(s, s & ".new")
        Catch ex As Exception
        End Try

, чтобы имя s (как строка) стало s & extension ".new". Однако это не сработало.

1 Ответ

0 голосов
/ 19 января 2019

Если бы вы прочитали документацию по методу RenameFile, который вы вызываете, как вам и следовало бы начать, особенно если он не работает, вы должны знать, что для первого аргумента требуется полный путь к файлув то время как второй аргумент требует только новое имя файла.Это означает, что вам нужно следующее:

My.Computer.FileSystem.RenameFile(s, My.Computer.FileSystem.GetName(s) & ".new")

Для метода File.Move требуются полные пути в обоих случаях, поскольку он поддерживает переименование в одной и той же папке и перемещение в другую папку.Вы говорите, что хотите использовать RenameFile, но не удосужились заметить, как он отличается, т. Е. Он поддерживает только переименование в одной и той же папке, поэтому указание этого пути дважды бессмысленно, а разрешение указывать разные пути может вызвать проблемы.

...