Как проверить сущестувет ли файл?

Тема в разделе "Lotus - Программирование", создана пользователем 11BOSS11, 7 дек 2010.

  1. 11BOSS11

    11BOSS11 Гость

    каким оператором можно проверить существует ли файл на компютере?
    например файл : "C:\temp\test.txt"
    нужно в итоге иметь ответ тру (если есть такой) или фолсе(если нету)..
    в скриптовнике чтото не наблюдаю.. :angry2:
     
  2. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
  3. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    11BOSS11
    открыть его на чтение - проверишь существует ли он
    открыть его на запись - проверишь свободен ли он

    ну и обработчик ошибок
     
  4. vitfil

    vitfil IT-интегратор

    Регистрация:
    2 апр 2004
    Сообщения:
    2.070
    Симпатии:
    0
    ToxaRat
    Открыть его на чтение и получить исключение потому как нет прав.
    Открыть его на запись... см.выше.
     
  5. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    если у агента 1й тип секюрити то никогда и не узнаешь если ли файл
     
  6. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
  7. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Код (LotusScript):
    Function IsFileExist(filePath As String) As Boolean
    IsFileExist = (Dir$(filePath) <> "")
    End Function
     
  8. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    nvy
    не, дир так не пашет, там сначала тип и путь указываем а потом проходим поэлементно
     
  9. 11BOSS11

    11BOSS11 Гость

    ф-я работает :what?:
    СпасибКо всем!
    ээ...у мну мозила слитела чтото.. немогу поблагодарить никого.. разберусь,исправлюсь!=))
     
  10. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    ToxaRat
    Сам не проверял, верю справке:
     
  11. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    Код (LotusScript):
    Function IsFileOrFolderExist(FilePath As String, Filename As String, TypeSearch As Integer) As Boolean ' узнаём что файл существует
    IsFileOrFolderExist=False
    On Error Goto EDLB
    fileNameArray = Dir$(FilePath, TypeSearch)
    Do While fileNameArray <> ""
    If fileNameArray = Filename Then IsFileOrFolderExist=True :Exit Function
    fileNameArray = Dir$()
    Loop
    Exit Function
    EDLB:
    Call MylogError({IsFileOrFolderExist, FilePath=} & FilePath & {, Filename=} & Filename & {, TypeSearch=} & TypeSearch)
    Err=0
    Exit Function
    End Function
     
  12. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    ToxaRat
    Проверил работоспособность предложенной в посте http://codeby.net/ipb.html?s=&sh...st&p=194160 функции. Очень даже работает. Можно, конечно, добавить Dir-овский параметр attributeMask и обработку ошибок, но это на любителя. А перебирать все файлы, КМК, будет дольше.
     
  13. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    и даже не отбивает ошибку если корневой директории нету?
     
  14. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Разумеется, отбивает. Я же указал:
    Я привёл только заготовку, вот более приближенный к рабочему вариант:
    Код (Text):
    Function IsFileExist(filePath As String, attributeMask As Integer) As Boolean
    On Error Goto ErrorHandler
    IsFileExist = (Dir$(filePath, attributeMask) <> "")
    Exit Function
    ErrorHandler:
    IsFileExist = False
    Resume Next
    End Function
     
  15. Kee_Keekkenen

    Kee_Keekkenen Well-Known Member

    Регистрация:
    5 сен 2006
    Сообщения:
    616
    Симпатии:
    4
    мне мое ближе
    Код (Text):
    Function checkFile(filePath As String) As Boolean  
    Dim attr As Integer
    try:
    On Error Goto catch        
    attr = Getfileattr(filePath)       
    If attr >= 32 And attr < 48 Then checkFile = True
    Exit Function
    catch:     
    Resume Next
    End Function
     
Загрузка...

Поделиться этой страницей