If Len(Dir("твой файл")) Then 'файл существует.
tyomitch писал(а):
- Код: Выделить всё
If Len(Dir("твой файл")) Then 'файл существует.
Это работает, но это неправильно.
GSerg писал(а):Потому что файл могут удалить после того, как условие проверено, но до того, как начала выполняться ветка.
GSerg писал(а):Тады ловить ошибку, это единственно правильный способ.
Public Function bFileExists(sFile As String) As Boolean
If Dir$(sFile) <> "" Then bFileExists = True Else _
bFileExists = False
End Function
GSerg писал(а):Потому что файл могут удалить после того, как условие проверено, но до того, как начала выполняться ветка.
GSerg писал(а):extHack, ты тоже, да?
Public Function bFileExists(sFile As String) As Boolean
'Проверка наличия файла.
'Подключить References -> Microsoft Scripting Runtime
Dim f As New Scripting.FileSystemObject
If f.FileExists(sFile) = True Then
bFileExists = True
Else
bFileExists = False
End If
End Function
Ruslan Demidow писал(а):Сделали дир - файл есть. Куда теперь? Если дальше - ты пишешь: не правильно. Если проверять ошибку - то какую? Которую вернёт дир? Когда? По второму разу дир делать? Я запутался.
GSerg писал(а):Ruslan Demidow писал(а):Сделали дир - файл есть. Куда теперь? Если дальше - ты пишешь: не правильно. Если проверять ошибку - то какую? Которую вернёт дир? Когда? По второму разу дир делать? Я запутался.
Нет.
Если ты проверяешь наличие файла, значит, ты хочешь с ним что-то сделать. Вот сразу делай, без проверки наличия, и лови ошибку.
!Viper! писал(а):Наличие файла надо проверять каждый раз при его использовании. Т.е. если надо проверить наличие указанного при загрузке файла, проверяй. Когда позже начинаешь с ним работать - проверяй... и так далее.
!Viper! писал(а):а самая надежная проверка - отлов ошибки.
!Viper! писал(а):Ruslan Demidow, Привет земляку!
Может, не в тему, но приведу пример из жизни: есть такая штука - MTA (GTA по инету). Так вот, прога перед запуском GTA проверяет все файлы с настройками на валидность (чтобы никто не менял настройки, скажем, своих машин), а сама GTA сначала выдает заставку. Так вот, если во время заставки переключиться Alt+Tab'ом и все, что нужно, поменять, MTA ничего не скажет.Ruslan Demidow писал(а):GSerg писал(а):Ruslan Demidow писал(а):Сделали дир - файл есть. Куда теперь? Если дальше - ты пишешь: не правильно. Если проверять ошибку - то какую? Которую вернёт дир? Когда? По второму разу дир делать? Я запутался.
Нет.
Если ты проверяешь наличие файла, значит, ты хочешь с ним что-то сделать. Вот сразу делай, без проверки наличия, и лови ошибку.
А если мне в моей программе при загрузке нужно проверить наличие файла указанного в настройках, а использовать его потом (в зависимости от наличия файла). Всё равно писать обработчик?
tyomitch писал(а):Так и надо.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18