1.) Отметьте здесь . В основном сделайте это:
Function FileExists(ByVal FileToTest As String) As Boolean
FileExists = (Dir(FileToTest) <> "")
End Function
Я оставлю это вам, чтобы выяснить, какая обработка ошибок необходима, но это одна из тех вещей, которые я бы рассмотрел при обработке ошибок:
- Проверка пропуска пустой строки.
- Проверить строку, содержащую недопустимые символы в имени файла / пути
2.) Как удалить файл. Посмотрите на this. В основном используйте команду Kill, но вам нужно разрешить возможность доступа файла только для чтения. Вот функция для вас:
Sub DeleteFile(ByVal FileToDelete As String)
If FileExists(FileToDelete) Then 'See above
' First remove readonly attribute, if set
SetAttr FileToDelete, vbNormal
' Then delete the file
Kill FileToDelete
End If
End Sub
Опять же, я оставлю вам обработку ошибок, и снова я рассмотрю следующие вещи:
Должно ли это вести себя по-разному для каталога и файла? Должен ли пользователь явно указывать, что он хочет удалить каталог?
Хотите ли вы, чтобы код автоматически сбрасывал атрибут только для чтения, или пользователь должен получить какое-то указание на то, что атрибут только для чтения установлен?
РЕДАКТИРОВАТЬ: пометить этот ответ как вики сообщества, чтобы любой мог изменить его, если потребуется.