我理解如何在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")
答案 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