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

  • Автор темы 11BOSS11
  • Дата начала
1

11BOSS11

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

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 203
24
38
Киев
ToxaRat.com
#3
11BOSS11
открыть его на чтение - проверишь существует ли он
открыть его на запись - проверишь свободен ли он

ну и обработчик ошибок
 

vitfil

IT-интегратор
02.04.2004
2 062
0
44
Минск
#4
ToxaRat
Открыть его на чтение и получить исключение потому как нет прав.
Открыть его на запись... см.выше.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 203
24
38
Киев
ToxaRat.com
#8
nvy
не, дир так не пашет, там сначала тип и путь указываем а потом проходим поэлементно
 
1

11BOSS11

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

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 203
24
38
Киев
ToxaRat.com
#11
Код:
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
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
48
Подмосковье
#12
ToxaRat
Проверил работоспособность предложенной в посте http://codeby.net/ipb.html?s=&sh...st&p=194160 функции. Очень даже работает. Можно, конечно, добавить Dir-овский параметр attributeMask и обработку ошибок, но это на любителя. А перебирать все файлы, КМК, будет дольше.
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 203
24
38
Киев
ToxaRat.com
#13
Проверил работоспособность предложенной в посте http://codeby.net/ipb.html?s=&sh...st&p=194160 функции. Очень даже работает. Можно, конечно, добавить Dir-овский параметр attributeMask и обработку ошибок, но это на любителя. А перебирать все файлы, КМК, будет дольше.
и даже не отбивает ошибку если корневой директории нету?
 

nvyush

Well-Known Member
Lotus team
22.04.2009
2 317
0
48
Подмосковье
#14
и даже не отбивает ошибку если корневой директории нету?
Разумеется, отбивает. Я же указал:
Можно, конечно, добавить Dir-овский параметр attributeMask и обработку ошибок, но это на любителя.
Я привёл только заготовку, вот более приближенный к рабочему вариант:
Код:
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
 

Kee_Keekkenen

Well-Known Member
05.09.2006
639
6
Москва
#15
мне мое ближе
Код:
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