Страница: 1 |
Страница: 1 |
Вопрос: SHFileExists
Добавлено: 27.04.07 14:03
Автор вопроса: AndreyMp | ICQ: 237822510
Чего то не работает даже пример из API-Guide на Win2003 Server.
Private Declare Function SHFileExists Lib "shell32" Alias "#45" (ByVal szPath As String) As Long
Private Sub Form_Load()
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
MsgBox "Does the file exist?" + Str$(SHFileExists("c:\autoexec.bat"))
End Sub
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #1
Добавлено: 27.04.07 14:10
И на ХР тоже.
Номер ответа: 2
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #2
Добавлено: 27.04.07 14:29
И правильно. Нефиг использовать недокументированные функции.
Номер ответа: 3
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #3
Добавлено: 27.04.07 15:54
)))) Лады. Фиг с ней, перебьемся документированными.
Номер ответа: 4
Автор ответа:
Programmer
Вопросов: 71
Ответов: 246
Профиль | | #4
Добавлено: 27.04.07 16:23
Используй эту функцию:
Public Function FileExists(ByVal sPath$) As Boolean
On Error GoTo 10
Call FileLen(sPath)
FileExists = True
10 End Function
Номер ответа: 5
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #5
Добавлено: 27.04.07 19:49
И зачем мучить файловую систему определением длины файла, когда можной обойтись простой Dir?
И, даже если допустить определение длины файла - попробуй-ка, programmer, определить своей функцией, существует ли файл размером гига 3-4. Ты возможно удивишься.
И, в чём смысл определения того, существует ли файл? Вы определили, что он существует, и ровно через 1 мс другой процесс удалил его. Ы?
Номер ответа: 6
Автор ответа:
AndreyMp
ICQ: 237822510
Вопросов: 28
Ответов: 1182
Профиль | | #6
Добавлено: 28.04.07 08:00
Номер ответа: 7
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #7
Добавлено: 28.04.07 10:02
Хе хе.
Т.е.
Скажи мне, AndreyMp, что будет, если менеджер потоков Windows заберёт управление у твоего процесса ровно после возвращения функции FileExists, но точно перед началом выполнения ветки Then? И другой процесс, которому будет отдано управление, удалит этот файл?
Номер ответа: 8
Автор ответа:
Programmer
Вопросов: 71
Ответов: 246
Профиль | | #8
Добавлено: 28.04.07 13:33
GSerg, ты наверно издеваешься. Вероятность, что комуто понадобиться удалить этот файлик в ту же миле секунду настолько мала...
Использовать Dir?
Эта функция какаято глючная - если файл hidden, то она его не видит, если файл нормальный, а функция с параметром Hidden, она не видит нормальный файл.
Скрытые папки она похоже вообще не видит.
Номер ответа: 9
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #9
Добавлено: 28.04.07 14:39
Ламерское оправдание. Не стоит за него держаться.
Попробуй использовать второй параметр этой функции.
Номер ответа: 10
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #10
Добавлено: 28.04.07 15:02
Поправляюсь.
Попробуй правильно использовать второй параметр это функции. Например,
Номер ответа: 11
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #11
Добавлено: 28.04.07 17:46
Проверять файл на существование перед выполнением над ним операции не труъ. Труъ - пытаться выполнить эту операцию и проверять код ошибки, если она произошла.