Как переименовать файл в VB.NET
Я понимаю, как переименовать файл вVB.NET Как я использую в коде в конце моего поста. Однако мне было интересно, можно ли переименовать файл, и если файл существует, то переименовать его и добавить +1 к имени файла?
Итак, если я запустил код.
' запустите его в первый раз
My.Computer.FileSystem.RenameFile("c:testtest.txt", "c:testNewName.txt")
'запустите его снова, но он должен добавить +1, поскольку файл уже существует, поэтому он должен быть "c:testNewName1.txt"
My.Computer.FileSystem.RenameFile("c:testtest.txt", "c:testNewName.txt")
обновление
я решил, а не переименовывать и +1, было бы лучше просто поставить дату, поэтому для всех, кто борется, как я:
My.Computer.FileSystem.RenameFile("c:testtest.txt", "Test" & Format(Date.Now, "ddMMyy") & ".txt")
4 ответов
вам нужно написать свою собственную логику для этого.
на File
класс имеет много полезных методов для работы с файлами.
If File.Exists(filePath) Then
' Give a new name
Else
' Use existing name
End If
на Path
class имеет много методов для работы с путями файлов.
Path.GetFileNameWithoutExtension(filePath)
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
вам не нужно упоминать полный путь к файлу в 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
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