Как проверить нахождения файла в папке перед его загрузкой?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
HellScream
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 50
Зарегистрирован: 03.10.2004 (Вс) 17:33
Откуда: Из ада, откуда же ещё

Как проверить нахождения файла в папке перед его загрузкой?

Сообщение HellScream » 27.10.2004 (Ср) 16:19

Как проверить нахождения файла в папке перед его загрузкой?
заранее спасибо :wink:
Everything is Possible

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 27.10.2004 (Ср) 16:20

if len(dir("file")) then...
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 27.10.2004 (Ср) 16:32

Код: Выделить всё
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

Только учти, что это недокументирванная ф-ция!
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Scuder
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 334
Зарегистрирован: 17.08.2002 (Сб) 13:18
Откуда: Moscow, Russia

Сообщение Scuder » 28.10.2004 (Чт) 10:01

Гм..

Код: Выделить всё
Private Declare Function PathFileExists Lib "shlwapi.dll" Alias "PathFileExistsA" (ByVal pszPath As String) As Long

If PathFileExists(App.Path & "\setup.ini") = False Then Exit Sub

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 28.10.2004 (Чт) 10:59

Мы не ищем простых путей? :)

Scuder
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 334
Зарегистрирован: 17.08.2002 (Сб) 13:18
Откуда: Moscow, Russia

Сообщение Scuder » 28.10.2004 (Чт) 11:04

Sedge писал(а):Мы не ищем простых путей? :)


Да куда уж проще-то?? :-)

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 28.10.2004 (Чт) 11:24

Scuder писал(а):
Sedge писал(а):Мы не ищем простых путей? :)


Да куда уж проще-то?? :-)


Как куда? :shock: :D :D :D
Код: Выделить всё
Private Declare Function PathAddBackslash Lib "shlwapi.dll" Alias "PathAddBackslashA" _
  (ByVal pszPath As String) As Long

Private Function AddBackslash(ByVal sPath As String) As String
'
On Error GoTo eRes

'//------------------------------------------------------------------------------------
  Dim lRes As Long
  Dim sBuffer As String
'//------------------------------------------------------------------------------------
    sBuffer = Left$(sPath & String(MAX_PATH, vbNullChar), MAX_PATH)
    lRes = PathAddBackslash(sBuffer)
    If lRes <> 0 Then
        AddBackslash = Left$(sBuffer, InStr(sBuffer, vbNullChar) - 1)
    End If

Exit Function
eRes:
  MsgBox Err.Description
End Function


Таким образом:

Код: Выделить всё
If PathFileExists(AddBackslash(App.Path) & "setup.ini") = False Then Exit Sub


Во! :D :D :D :D :D :D :D

Tarik
Агент Системы
Агент Системы
Аватара пользователя
 
Сообщения: 1222
Зарегистрирован: 03.01.2003 (Пт) 16:05
Откуда: Москва

Сообщение Tarik » 28.10.2004 (Чт) 13:02

2Sedge: Ну крут, крут, ничего не скажешь :lol:
Изображение

Ever tried? Ever failed? No matter. Try again! Fail again! Fail better!

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 28.10.2004 (Чт) 13:42

Tarik писал(а):2Sedge: Ну крут, крут, ничего не скажешь :lol:

Гы :) Это я на зубок новую религию пробую: http://bbs.vbstreets.ru/viewtopic.php?t=10278 :D В апишных декларациях пространства для Пальцев \m/ намного больше, чем в одной строчке vb-кода :lol:

Dex
Постоялец
Постоялец
 
Сообщения: 346
Зарегистрирован: 09.08.2004 (Пн) 16:11

Сообщение Dex » 28.10.2004 (Чт) 19:58

Я обычно проверяю с помощью Fso
Ну типо вначале обьявляю:
Код: Выделить всё
Dim fso As New FileSystemObject

а затем проверяю
Код: Выделить всё
If fso.FolderExists("C\...") Then
:)


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 8

    TopList