Как переименовать файл в 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