Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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
Вы определили, что он существует, и ровно через 1 мс другой процесс удалил его. Ы?
:)) Ну уж этого мы не допустим. Тут же берем и копируем. А на счет размера ты прав, у меня допустим как раз файлики от двух гигов и выше. :))

Ответить

Номер ответа: 7
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #7 Добавлено: 28.04.07 10:02
Ну уж этого мы не допустим. Тут же берем и копируем.


Хе хе.
Т.е.
If FileExists("c:\...";) Then FileCopy(..., ...)
?

Скажи мне, 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
Вероятность, что комуто понадобиться удалить этот файлик в ту же миле секунду настолько мала...

Ламерское оправдание. Не стоит за него держаться.

если файл hidden, то она его не видит

Попробуй использовать второй параметр этой функции.

Ответить

Номер ответа: 10
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #10 Добавлено: 28.04.07 15:02
а функция с параметром Hidden, она не видит нормальный файл

Поправляюсь.

Попробуй правильно использовать второй параметр это функции. Например,
Dir("...", vbNormal or vbHidden or vbSystem)

Ответить

Номер ответа: 11
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #11
Добавлено: 28.04.07 17:46
Проверять файл на существование перед выполнением над ним операции не труъ. Труъ - пытаться выполнить эту операцию и проверять код ошибки, если она произошла.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам