如何在VB.NET中重命名文件

时间:2012-05-28 12:23:53

标签: .net vb.net

我理解如何在VB.NET中重命名文件,因为我在帖子末尾的代码中使用了该文件。但是,我想知道是否可以重命名文件,如果该文件存在,那么重命名它并为文件名添加+1?

所以,如果我运行代码。

'第一次运行

My.Computer.FileSystem.RenameFile("c:\test\test.txt", "c:\test\NewName.txt")

'再次运行它,但它应该添加+1,因为该文件已经存在,所以它应该是“c:\ test \ NewName1.txt”

My.Computer.FileSystem.RenameFile("c:\test\test.txt", "c:\test\NewName.txt")

更新

我决定而不是重命名和+1,最好只标记它,所以对于那些像我一样挣扎的人:

My.Computer.FileSystem.RenameFile("c:\test\test.txt", "Test" & Format(Date.Now, "ddMMyy") & ".txt")

5 个答案:

答案 0 :(得分:9)

你需要为此编写自己的逻辑。

File类有许多有用的方法来处理文件。

If File.Exists(filePath) Then
  ' Give a new name
Else
  ' Use existing name
End If

Path类有许多处理文件路径的方法。

Path.GetFileNameWithoutExtension(filePath)

答案 1 :(得分:6)

If System.IO.File.Exists("c:\test\NewName.txt") Then
   ' add +1 or loop exists with increment on the end until file doesn't exist
End If

答案 2 :(得分:2)

您无需在newFileName参数中提及完整的文件路径,只需在此处提及新文件名,否则您将获得ArgumentException

Dim filePath As String = "C:\fingerprint1"

If File.Exists(filePath) Then

    Dim strNewFileName As String = "Fingerprint221"

    My.Computer.FileSystem.RenameFile(filePath, strNewFileName)

 End If

答案 3 :(得分:1)

重命名文件的另一种简单方法是使用System.IO.File的Move()方法。

示例:

System.IO.File.Move("C:\temp\file1.txt", "C:\temp\file1_renamed.txt")

答案 4 :(得分:0)

   Public Sub RenameFile(ByRef FileFind As String, ByRef NewReplaceFileName As String)
        Dim Ada As String = Path.GetFileNameWithoutExtension(FileFind)
        'VS2013 Dim Ada As String = File.Exists(FileFind)
        If Ada.Length > 0 Then
            My.Computer.FileSystem.RenameFile(FileFind, NewReplaceFileName)
            Exit Sub
        Else
            MsgBox("File doesn't exists")
        End If
    End Sub