|
|
|
| Function CheckDir(MyPath As String) As Boolean
'Функция проверки на наличие файла по указанному пути
CheckDir = False
On Error Resume Next
If Dir(MyPath) <> "" Then CheckDir = True
End Function
Может есть получшее? | |
|
| |
|
|
|
|
Public Function fnFileExists(strFilePath As String) As Boolean
Dim objFSO As Object
Set objFSO = CreateObject("Scripting.FileSystemObject")
fnFileExists = objFSO.FileExists(strFilePath)
Set objFSO = Nothing
End Function
Public Function fnGetSpecFolder(btSpec As Byte) As String
Dim objFSO As Object
fnGetSpecFolder = ""
If btSpec >= 0 And btSpec < 3 Then
Set objFSO = CreateObject("Scripting.FileSystemObject")
fnGetSpecFolder = objFSO.GetSpecialFolder(btSpec)
Set objFSO = Nothing
End If
End Function
|
Function CheckDir(MyPath$) As Boolean
CheckDir = Len(Dir(MyPath))
End Function
|
| |
|
| |
|
|
|
| Спасибо, Силыч!!!!!!
С тяпницей тебя | |
|
| |
|
|
|
| Но тута FSO надо подключаь........ | |
|
| |
|
|
|
| а какие проблемы? ;)
но вообщето в данном случае - не надо :) | |
|
| |
|
|
|
| Прмблемы в отправке к заказчику.
Надо как то автомаически подцеплять, коли у нёга нема етого........ | |
|
| |
|
|
|
|
|
| Получал я от пользователей сообщение об ошибке
Error 429: ActiveX component can't create object
на строку
CreateObject("Scripting.FileSystemObject")
Ведь библиотека действительно может быть не зарегистрирована.
Но это бывает очень редко, не чаще чем 1 раз на 1000 | |
|
| |
|
|
|
| использую это:
'Проверка наличия указанного файла
Public Function FileExists(ByVal strFileFullPath As String) As Boolean
Dim lSize As Long
On Error GoTo Err_
lSize = -1
If GetAttr(strFileFullPath) And vbDirectory Then GoTo Err_
lSize = FileLen(strFileFullPath)
FileExists = lSize > -1
Exit Function
Err_:
End Function
|
| |
|
| |
|
|
|
| Если труе - то всё в порядке..... ...
А это куда идти GoTo HandleExit | |
|
| |
|
|
|
| это я не оттуда скопироваллл :)
сейчас подправил | |
|
| |
|
|
|
| Да, спасибо, всунул......... | |
|
| |
|
|
|
| Эффект тот жа.
Они (функции) все проверяют не пустое ли значение, а не наличие ффайла по указанному пути.....
И если значение тока имя файла без пути , функции говорят - всё в норме - есть такой файл.............
А нет ли такой , которая действительно весь путь прощупает и ответит правду? | |
|
| |
|
|
|
| помедленнее пожалуйста....
Час, в чем возникла проблема? не пойму что-то | |
|
| |
|
|
|
| Вот попробуй спроси
if FileExists("kukih") = true then msgbox "Всё в норме!!!"
CheckDir - тоже самое и все они врут | |
|
| |
|
|
|
| ну спросил... молчит
на msgbox "Всё в норме!!!" не выходит
Час, у тебя компилятор от чего?
***
голову дуришь наверное | |
|
| |
|
|
|
| аааа. доперло кажись
если путь не указан, то эти хвункции по умолчанию смотрят в 'мои документы'
и если там есть файл 'kukih', то 'все в норме' | |
|
| |
|
|
|
| >если путь не указан, то эти хвункции по умолчанию смотрят в 'мои документы'
Смотрит в текущий каталог, который может быть определен с помощью функции CurDir, а задан с помощью ChDir Statement (поэтому это не обязательно 'мои документы')
Так что поведение функции FileExists совершенно корректное. И не стоит ее изменять.
Лучше проверить что в нее передается в другом месте. | |
|
| |
|
|
|
| Public Function CheckFile(strName As String) As Boolean
'Функция проверки на наличие файла по указанному пути
'
'Аргументы: strName - полный путь к требуемому файлу.
'Назначение: Проверка существования файла по указанному пути.
'Возвращает: true - существует
Dim strTemp As String
On Error Resume Next
strTemp = Dir(strName, vbHidden Or vbSystem Or vbArchive Or vbReadOnly)
CheckFile = ((Len(strTemp) > 0) And (Err.Number = 0))
Err.Clear
End Function
ни одна не работает | |
|
| |
|
|
|
| а если добавить это:
If InStr(1, strFileFullPath, "\") = 0 Then Exit Function | |
|
| |
|
|
|
| Я уж об етом подумал...................
и ещё ":" двоеточие | |
|
| |
|
|
|
| А как же люди с етим злом - что не сталкивалися что ли.................. | |
|
| |
|
|
|
| >А как же люди с етим злом - что не сталкивалися что ли
Какое ж это зло?
Это правильное поведение. | |
|
| |
|
|
|
| у сетевых адресов двоеточий может не быть | |
|
| |
|
|
|
| точно..............
а слэши они завсегда имеются | |
|
| |
|
|
|
|
Function CheckDir(MyPath$) As Boolean
If InStr(1, MyPath$, "\") = 0 Then
msgbox "Что за хрень?"
CheckDir = false
exit Function
end if
CheckDir = Len(Dir(MyPath))
End Function
|
| |
|
| |
|
|
|
| ну вот и чудненько
а то думаю что за трабл на ровном месте... | |
|
| |
|
|
|
|
|
| она слэши ищет!!!!
Согласись это не то, что от неё требуется. | |
|
| |
|
|
|
| надо, что ба функция действительно слева направо проверила по указанной строке - наличие папок и файла на конце, с нужным расширением.
Тода она да!!! | |
|
| |
|
|
|
| примерно так вот:
Public Function File_Presence(strPathFile As String) As Boolean
'проверки наличия файла по указанному пути
Dim strTemp As String
Dim i As Integer
Dim x As Integer
Dim Check_Fiel As String 'Искомый файл
File_Presence = False ' пока предположим нету файло по пути
If Nz(strPathFile) = "" Then Exit Function
Check_Fiel = Dir(strPathFile) ' если путь верен - Выводит Искомый файл
strTemp = ""
x = Len(strPathFile) ' Вычленяем файл из пути
For i = x To 1 Step -1
If Mid(strPathFile, i, 1) = "\" Then
strTemp = Mid(strPathFile, i + 1)
Exit For
End If
Next i ' Вычленяем файл из пути
' проверяем две переменные на равность
If Nz(Check_Fiel) = Nz(strTemp) Then
File_Presence = True
'MsgBox "Имеется файл"
End If
End Function
|
| |
|
| |
|
|
|
| сдается ты уже увлекся, Час
имхо: хватит и первоначальной проверки на слэш (ты же все равно потом по нему ориентируешься)
еще имхо: мне кажется что собо париться с тем что файл определяется без наличия пути (в 'моих документах') не нужно - это не ошибка
просто старайся всегда задавать полный путь файла вот и все | |
|
| |
|
|
|
|
| Или вот так вот:
Public Function File_Presence(strPathFile As String) As Boolean
'проверки наличия файла по указанному пути
Dim strTemp As String
Dim i As Integer
Dim x As Integer
Dim Check_Fiel As String 'Искомый файл
File_Presence = False ' пока предположим нету файло по пути
If Nz(strPathFile) = "" Then Exit Function
Check_Fiel = Dir(strPathFile) ' если путь верен - Выводит Искомый файл
If Check_Fiel = "" Then Exit Function
strTemp = ""
x = Len(strPathFile) ' Проверяем папки пути
For i = 1 To x
If Mid(strPathFile, i, 1) = "\" Then
strTemp = Mid(strPathFile, 1, i - 1)
If Dir(strPathFile, vbDirectory) = "" Then
Exit Function
End If
End If
Next i ' Проверяем папки пути
strTemp = ""
x = Len(strPathFile) ' Вычленяем файл из пути
For i = x To 1 Step -1
If Mid(strPathFile, i, 1) = "\" Then
strTemp = Mid(strPathFile, i + 1)
Exit For
End If
Next i ' Вычленяем файл из пути
' проверяем две переменные на равность
If Nz(Check_Fiel) = Nz(strTemp) Then
File_Presence = True
'MsgBox "Имеется файл"
End If
End Function
|
| |
|
| |
|
|
|
|
| Так не должно, не должно быть,
Нет, нет, никогда,
Чтобы любовь захватила нас,
Ждать нужно года.
От внезапной любви,
Что приходит мгновенно,
Жди, непременно
Какая-то будет беда.
Так не должно быть,
Но снова я взгляд твой ловлю,
И понимаю, что всё это глупо и странно.
Так не должно быть,
Но сердце стучит неустанно:
"Я люблю! Я люблю!" | |
|
| |
|
|
|
| Так значит не функция виновата.
Это "любовь" сводит с ума.
Выход, варианты:
1. Забросить программирование. (Хотя бы до "выздоровления").
2. Срочно "разлюбить", что бы голова просветлела. | |
|
| |
|
|
|
|
| Теперь понятно, куда "улетела крыша". | |
|
| |