VB.net重命名目录中的每个文件

时间:2019-01-19 12:08:41

标签: vb.net file for-loop

Id想在一个特定目录中重命名我的所有文件。他们都将获得相同的扩展名。我尝试使用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并扩展名为“ .new” 但是,那没用。

1 个答案:

答案 0 :(得分:0)

如果您已经阅读了要调用的RenameFile方法的文档(应该从头开始,尤其是当它不起作用时),那么您会知道第一个参数需要使用完整的路径文件,而第二个参数仅需要文件的新名称。这意味着您需要这样做:

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

在两种情况下,File.Move方法都需要完整路径,因为它支持在同一文件夹内重命名并移动到其他文件夹。您说您想使用RenameFile,但不必理会它的不同之处,即它仅支持在同一文件夹中重命名,因此两次指定该路径毫无意义,并且允许指定不同的路径会导致问题