PDA

View Full Version : [Q] Kiểm tra sự tồn tại của 1 file ?



lovely
28-09-2002, 18:36
Làm thế nào để trước khi mở file (ngoài hoặc trong chương trình )thì kiểm tra xem file đó có tồn tại không bà con ???

come2one
28-09-2002, 22:04
Thử thế này xem bạn!

Function CheckFile(sFileName as Strng, sDir as String) as Boolean

Dim sTmp as String

sTmp = Dir(sDir & "\" & sFileName)
If sTmp = sFileName then
CheckFile = True
Else
CheckFile = False
End If
End Function

lovely
30-09-2002, 10:32
cho hỏi thêm chút :
Làm thế nào để xem thuộc tính của file(hidden ,real only...) trước khi mở .
Làm thế nào để đặt lại thuộc tính cho file đó

hueduongit
30-09-2002, 11:15
Sử dụng 2 hàm này để làm việc với các thuộc tính của file: SetAttr , GetAttr

Nicky
30-09-2002, 15:03
Bạn đến chỗ này http://coolcode4you.fateback.com có bài hướng dẫn chi tiết về hàm Dir
Have fun !!

quaitieutu
01-10-2002, 17:39
Bài viết được gửi bởi lovely
Làm thế nào để trước khi mở file (ngoài hoặc trong chương trình )thì kiểm tra xem file đó có tồn tại không bà con ???

:D :rolleyes:

Public Sub VerifyFile(FileName As String) '
'
On Error Resume Next

'Mở file thử để kiểm tra

Open FileName For I`165432nput As #1

If Err Then

MsgBox ("The file " & FileName & " cannot be found.")

Exit Sub

End If

Close #1

'

End Sub

Bạn hãy đặt nó vào một module để sử dụng cho toàn chương trình.
Nếu quá trình kiểm tra diễn ra tốt đẹp thì không có gì, nếu có trục trặc bạn sẽ thấy một MsgBox xuất hiện, nhờ bẫy lỗi, chương trình của chúng ta vẫn hoạt động tiếp tục. Bây giờ bạn hãy tạo một form mới, thêm vào một CommandButton (Name: cmdVerify), gõ vào đoạn Code cho tình huống Click(), nhấn F5 chạy thử. Với chương trình con như vậy bạn có thể gọi nó để kiểm tra sự tồn tại của file trong chương trình.

Private Sub cmdVerify_Click()

'

Call VerifyFile("MyFile.txt")

'

End Sub

:D

lovely
17-10-2002, 10:48
Cái cảu bác có kiểm tra dược file ảnh không ?

White_Rose
17-10-2002, 23:43
File ảnh hay gì thì chả là file?
Cách của qtt là hay nhất đấy.
à, nếu có thể sử dụng FSO thì tiện hơn.

lovely
18-10-2002, 12:53
Tôi dùng mã của Quái tiểu tử để thì rõ ràng kiểm tra file .jpg thì rõ ràng trong đường dẫn có file nhưng chương trình vẫn bào không có .
Tôi nghĩ cách mở file open filename for input #1 không ổn ,
vì tôi nghĩ nếu đọc ngược 1 file như vậy có thể sinh ra nhiều lỗi , không hẳn lỗi là 53(file not found)

White_Rose
18-10-2002, 22:39
Vậy bạn sử dụng luôn FSO cho nhanh. Vừa đơn giản, vừa OO

Function ExistedFile(path as string) as boolean
Dim fso As Scripting.FileSystemObject
Set fso = New Scripting.FileSystemObject
If fso.FileExists("c:\PGLOG.LOG") Then
ExistedFile = True
Else
ExistedFile = False
End If
Set fso = Nothing
end function

Tất nhiên bạn phải tham chiếu (Reference...) đến Microsoft Scripting Runtime (srcrun.dll)

lovely
19-10-2002, 15:20
Thứ nhất cái của Bác quái tiểu tử : Chương trình của bác chắc chắn Sẽ gặp lỗi ở trong VB6 tức là Version 32 bit .Vì vậy tôi nghĩ lỗi có thể do Unicode...
Của White_rose bác Test thử đi sẽ biết tại sao không chính xác
lol lol
Thế nhé
(Tôi là người mới học nên mong các abnj ghi chú các mã lệnh hộ _cảm ơn các bạn nhiều)

White_Rose
19-10-2002, 16:35
Test thử cái gì cơ? Cái FSO á? Mình thấy nó run đấy chứ.
Cái của qtt, mình chạy okie. có điều bản VB của mình nó có vấn dề gì thì phải. Dù là file có tồn tại hay không thì nó đều báo là ... tồn tại.