VBA не может уничтожить файлы с именами кирилли c - PullRequest
0 голосов
/ 19 марта 2020

Мне нужно удалить все файлы в папке.

Код работает хорошо, когда имена файлов состоят из латинских букв.

Возвращает ошибку времени выполнения 52 (Неверное имя файла или номер ) когда любой из файлов содержит буквы кириллицы c.

Удивительно, но он хорошо работал даже с буквами кириллицы c на моем старом P C.

Sub Kill1()

    Dim aFile As String
    aFile = "C:\Users\belose\Downloads\temp\*.*"
    If Len(Dir$(aFile)) > 0 Then
        Kill aFile
    End If

End Sub

Что могло быть в этом вопросе?

Ответы [ 2 ]

1 голос
/ 19 марта 2020

Решение

Согласно комментарию от OP, решение состояло в том, чтобы изменить региональные настройки ...

Settings->Time and language->Addditional date time settings->Change location and chose Russia

Функция Dir не поддерживает символы Unicode. Попробуйте вместо этого использовать FileSystemObject.

В следующем примере циклически просматривается каждый файл в указанной папке, а затем удаляется любой файл, содержащий одно из указанных расширений файла.

Измените путь к источнику папка соответственно. Кроме того, добавьте и / или измените расширения файла по желанию.

Option Explicit

Sub DeleteFiles()

    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")

    Dim sourceFolder As Object
    Set sourceFolder = fso.GetFolder("c:\users\domenic\desktop") 'change the path accordingly

    Dim currentFile As Object
    For Each currentFile In sourceFolder.Files
        Select Case fso.GetExtensionName(currentFile)
            Case "txt", "csv", "xlsx", "xlsm" 'add and/or change the file extensions as desired
                fso.DeleteFile currentFile.Path
        End Select
    Next currentFile

    Set currentFile = Nothing
    Set sourceFolder = Nothing
    Set fso = Nothing

End Sub
0 голосов
/ 19 марта 2020

Я нашел причину root. У меня Win 10. Я зашел в Настройки-> Время и язык-> Дополнительные настройки даты и времени-> Изменить местоположение и выбрал Россию. Раньше у меня была похожая проблема с python, а потом я чувствовал, что это не проблема кода.

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