Kiểm tra sự tồn tại của một file trước khi save (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

thanchetvnt

Thành viên chính thức
Tham gia
28/7/08
Bài viết
75
Được thích
21
Chào các bạn.
Nhờ các bạn giúp mình viết code để kiểm tra sự tồn tại của một file trước khi thực hiện thao tác save. Cụ thể là trước khi save một file excel mới với tên ABC.xls chẳng hạn thì nó tự động kiểm tra trong tất cả các ổ xem đã có file nào có tên là ABC.xls chưa. Nếu chưa có thì mới save, nếu có rồi thì hiện thông báo và yêu cầu phải lưu với tên khác.
 
Chào các bạn.
Nhờ các bạn giúp mình viết code để kiểm tra sự tồn tại của một file trước khi thực hiện thao tác save. Cụ thể là trước khi save một file excel mới với tên ABC.xls chẳng hạn thì nó tự động kiểm tra trong tất cả các ổ xem đã có file nào có tên là ABC.xls chưa. Nếu chưa có thì mới save, nếu có rồi thì hiện thông báo và yêu cầu phải lưu với tên khác.

Save ở đâu thì kiểm tra chổ đó thôi, mắc mớ gì phải kiểm ta toàn bộ các ổ?
Ví dụ ổ C: đã có file ABC.xls, bây giờ bạn Save 1 file khác cũng tên la ABC.xls nhưng nằm ở ổ D thì có vấn đề gì đâu chứ?
 
Upvote 0
Cảm ơn anh Ndu đã quan tâm nhưng em không muốn có nhiều file cùng tên trên một máy. Vì lâu ngay muốn dùng lại nhưng không biết là mình lưu ở đâu, file nào là file cần tìm. Đến khi đó lại phải mở từng file ra để coi nội dung rồi mới làm công việc tiếp theo. Nếu có khoảng chục file có cùng tên là mất toi mất khá nhiều thời gian để xem lại. Vì vậy tốt nhất là chỉ lưu một file duy nhất trên một máy tính. Anh xem giúp em với nhé.
Cảm ơn anh.
 
Upvote 0
Cảm ơn anh Ndu đã quan tâm nhưng em không muốn có nhiều file cùng tên trên một máy. Vì lâu ngay muốn dùng lại nhưng không biết là mình lưu ở đâu, file nào là file cần tìm. Đến khi đó lại phải mở từng file ra để coi nội dung rồi mới làm công việc tiếp theo. Nếu có khoảng chục file có cùng tên là mất toi mất khá nhiều thời gian để xem lại. Vì vậy tốt nhất là chỉ lưu một file duy nhất trên một máy tính. Anh xem giúp em với nhé.
Cảm ơn anh.

Thử hàm này xem sao:
Mã:
Function FileExists(ByVal FileName As String) As Boolean
  Dim drv As Object
  Dim sComm As String, tmp As String, str As String, tmpFile
  On Error Resume Next
  If Len(FileName) = 0 Then Exit Function
  With CreateObject("Scripting.FileSystemObject")
    For Each drv In .Drives
      If drv.IsReady Then
        tmpFile = .GetTempName
        str = """" & drv.Path & "\" & FileName & """"
        sComm = "DIR " & str & " /ON /B /A-D-S /S >" & tmpFile
        CreateObject("Wscript.Shell").Run "cmd /u /c " & sComm, 0, True
        With .OpenTextFile(tmpFile, 1, , -2)
          tmp = Trim(.ReadAll)
          tmp = Replace(tmp, vbCrLf, "")
          .Close
        End With
        Kill tmpFile
        If Len(tmp) Then
          FileExists = True: Exit Function
        End If
      End If
    Next
  End With
End Function
Ví dụ để kiểm tra file ABC.xls có tồn tại ở đâu đó không, ta dùng cú pháp FileExists("ABC.xls")
Nếu hàm trên trả về kết quả =TRUE nghĩa là có tồn tại và ngược lại
------------
Vì phải kiểm tra ở tất cả các ổ đĩa nên thời gian hơi chậm. Trên máy tôi phải mất 6s mới cho ra kết
 
Upvote 0

Bài viết mới nhất

Back
Top Bottom