vbskb_file vbskb_exists vbskb_fileexists



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 писал(а):Так и надо.


Сейчас этот форум просматривают: Google-бот, SemrushBot и гости: 15