Невозможно переименовать файл с помощью FSO (в имени файла есть пробел) - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть небольшой код для переименования файла с именем «XYZ (43) .xlsx» в «XYZ (43) -07 / 02 / 2020.xlsx»

Я пытался использовать FSO.Move , FSO.movefile, имя, но ни один из них не работает. Я подозреваю это из-за пробела в имени. Может ли кто-нибудь помочь мне здесь?

Const SourcePath As String = "C:\Users\a\Desktop\Suraj\Imp\"
        Const DestinationPath As String = "C:\Users\a\Desktop\Suraj\personal\"
        Set FSO = CreateObject("scripting.filesystemobject")
        Set Directory = FSO.GetFolder(SourcePath)
        Set files = Directory.files
        Set RegExp = CreateObject("VBScript.Regexp")
        RegExp.Pattern = "XYZ \([0-9]+\).xlsx"
        For Each eachfile In files
            fileName = FSO.getFileName(eachfile)
            Nameonly = FSO.GetBaseName(fileName)
            newfilename = "" & Nameonly & "-" & Date
            If RegExp.Test(fileName) Or fileName = "XYZ.xlsx" Then
                Set file = FSO.GetFile(eachfile)
                NewFile = SourcePath & newfilename
                msgbox Dir(eachfile)
                FSO.moveFile Source:="" & SourcePath & fileName, Destination:=SourcePath & newfilename
            End If
        Next eachfile

1 Ответ

1 голос
/ 07 февраля 2020

Проблема не в пробеле, а в следующем: Date в следующей строке:

 newfilename = "" & Nameonly & "-" & Date

/ - это недопустимый символ в именах файлов :

Возможно, используйте Format$, чтобы, например, изменить прямую черту на тире.

 newfilename = "" & Nameonly & "-" & $Format(Date,"dd-mm-yyyy")

(хотя вам не нужен ведущий "" &).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...