• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Hỏi về các lệnh liên quan đến thư mục!!!

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Moderator: tungblt

traidau
Thành viên năng nổ
Thành viên năng nổ
Posts: 77
Joined: Wed 05/05/2010 2:08 pm
Has thanked: 15 times

Hỏi về các lệnh liên quan đến thư mục!!!

Postby traidau » Fri 25/06/2010 12:11 am

Cho em hỏi là:
-Lệnh Rmdir nó xóa được thư mục, nhưng mà là thư mục rỗng. Còn nếu thư mục đó không rỗng thì nó chịu! Các pác có thể chỉ cho em cách xóa thư mục bất kể có rỗng hay không được không???
-Lệnh Kill(app.path & "*.*") nó xóa sạch file trong thư mục, nhưng nếu thư mục rỗng không có file nào để xóa thì nó lại báo lỗi. Vậy nếu em muốn kiểm tra coi cái thư mục đó nó có rỗng hay không, nó có mấy file, bao nhiêu file loại này, bao nhiêu file loại kia,vân vân... thì phải làm như thế nào?
Mong các pác chỉ giáo? Thanks!!!



Uzumaki Naruto
Thành viên danh dự
Thành viên danh dự
Posts: 839
Joined: Mon 30/04/2007 9:55 pm
Location: Sài Gòn
Has thanked: 7 times
Been thanked: 83 times

Re: Hỏi về các lệnh liên quan đến thư mục!!!

Postby Uzumaki Naruto » Fri 25/06/2010 12:18 am

Để không bị lỗi thì dễ lắm. Dùng On Error Resume Next :D
  1. On Error Resume Next
  2. Kill(app.path & "*.*")
  3. Rmdir
  4.  
là OK
Cause you're my special thing
I'm flying without wings

traidau
Thành viên năng nổ
Thành viên năng nổ
Posts: 77
Joined: Wed 05/05/2010 2:08 pm
Has thanked: 15 times

Re: Hỏi về các lệnh liên quan đến thư mục!!!

Postby traidau » Fri 25/06/2010 12:25 am

Uzumaki Naruto wrote:Để không bị lỗi thì dễ lắm. Dùng On Error Resume Next :D
  1. On Error Resume Next
  2. Kill(app.path & "*.*")
  3. Rmdir
  4.  
là OK

Bít là có thể dùng bẫy lỗi, nhưng em ngại dùng nó lắm, cứ thiếu chặt chẽ, mơ hồ sao sao ấy... em mún có một cái lệnh gì cụ thể hơn cơ, chẳng hạn như kiểm tra xem thư mục đó có rỗng không chẳng hạn! Rất mong được chỉ giáo!!!

traidau
Thành viên năng nổ
Thành viên năng nổ
Posts: 77
Joined: Wed 05/05/2010 2:08 pm
Has thanked: 15 times

Re: Hỏi về các lệnh liên quan đến thư mục!!!

Postby traidau » Fri 25/06/2010 3:48 am

tiện cho em hỏi thêm là ở cái listview ấy, thì cái thuộc tính tương tự như thuộc tính listindex trong list nằm ở đâu vậy???

traidau
Thành viên năng nổ
Thành viên năng nổ
Posts: 77
Joined: Wed 05/05/2010 2:08 pm
Has thanked: 15 times

Re: Hỏi về các lệnh liên quan đến thư mục!!!

Postby traidau » Fri 25/06/2010 11:45 pm

Buồn quá! Sao không ai giúp em hết vậy, huhu... :(( :(( :(( :(( :(( :(( :((

Uzumaki Naruto
Thành viên danh dự
Thành viên danh dự
Posts: 839
Joined: Mon 30/04/2007 9:55 pm
Location: Sài Gòn
Has thanked: 7 times
Been thanked: 83 times

Re: Hỏi về các lệnh liên quan đến thư mục!!!

Postby Uzumaki Naruto » Sat 26/06/2010 1:00 am

Muốn kiểm tra thư mục có rỗng không,, cách đơn giản nhất là bạn lấy cái FileListBox cho nó trỏ đến thư mục cần xét. Nếu ListCount của nó = 0 thì tức là không có File trong đó. Cái cách này thì mình không biết là đối với những File hệ thống ẩn thì nó có đếm dc không, còn những File ẩn bình thường thì mở cái thuộc tính HIdden gì gì của nó là OK
Cause you're my special thing
I'm flying without wings

User avatar
trieu4978
Thành viên chính thức
Thành viên chính thức
Posts: 22
Joined: Wed 23/06/2010 6:58 pm
Location: HCM
Contact:

Re: Hỏi về các lệnh liên quan đến thư mục!!!

Postby trieu4978 » Wed 30/06/2010 5:53 pm

Nếu bạn muốn thao tác đầy đủ và trọn vẹn đến các folder và file thì bạn nên dùng các hàm API thay cho các hàm sẵn có của VB. Tuy rằng việc này hơi khó và viết code cũng hơi phê nhưng bù lại kết ảu thì tuyệt vời! Bạn sẽ tưởng mình là vua đó (muốn làm gì thì làm!).
Chúc bạn thành công! Nếu có khó khăn gì, bạn cứ gửi bài lên, tôi sẽ giúp bạn khi có thể!
;)
Bao năm lầm lũi đi với đời
Vẫn bàn tay trắng với chơi vơi
Thuyền tình dăm bận rời bến nhỏ
Rượu nồng cay đắng vẫn đầy vơi!
™T

hai_nt
Posts: 6
Joined: Tue 14/04/2009 2:14 pm

Re: Hỏi về các lệnh liên quan đến thư mục!!!

Postby hai_nt » Wed 05/01/2011 8:51 am

Cách xóa thư mục có chứa file đã có hướng dẫn cụ thể ở trong VBLibrary. Tuy nhiên nó xóa luôn chứ không cho vào thùng rác. Có cách nào xóa thư mục có chứa file nhưng cho vào thùng rác giống như ta xóa thư mục bằng cách Delete bình thường trên win không nhỉ.
Các thao tác với thư mục trong VBLibrary:

Code: Select all

Private Sub Form_Load()
'Tao thu muc: Nêu có Folder cùng tên hiên huu se báo lôi!
  MkDir "D:\My Folder"
'Xóa thu muc: Nêu Folder chu'a Files se báo lôi!
  RmDir "D:\My Folder"
'Xem ?uong dân hiên tai: CurDir() = App.Path
  MsgBox CurDir & vbCrLf & App.Path
'?ôi ?uong dân cua thu muc hiên hành: ít dùng
  ChDir "D:\"
'Gán thuôc tính cho thu muc:
  SetAttr "C:\Windows", 0
      ' Ph?n VBSCRIP5
'?oc tât ca các Folder trong môt thu muc:
Dim fso, ?ocFLD, môtFLD, FLDcon, s
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set ?ocFLD = fso.GetFolder("C:\Windows")
  Set FLDcon = ?ocFLD.SubFolders
     For Each môtFLD In FLDcon
         s = s & môtFLD.Name & ", "
     Next
 MsgBox s
'?oc tât ca các File *.log trong môt thu muc:
  s = ""
  Set FLDcon = ?ocFLD.Files
     For Each môtFLD In FLDcon
        If UCase(Right(môtFLD.Name, 3)) = "LOG" Then s = s & môtFLD.Name & ", "
     Next
  MsgBox s
'Riêng ?oc tât ca các Files và Folder trong thu muc và tât ca các Files và Folder trong thu muc con, cháu..., Mo'i các b?n tham khao

'kiêm tra thu muc có tôn tai?
    If (fso.FolderExists("D:\My Folder")) Then
        MsgBox "Có " & "D:\My Folder"
    Else
        MsgBox "Không có " & "D:\My Folder"
    End If
'Copy thu muc chép chông
  MkDir "D:\My Folder"
  FileCopy "c:\config.sys", "D:\My Folder\1.txt"
  fso.CopyFolder "C:\windows\Cursors", "D:\My Folder"
'Xóa thu muc có chu'a Files
  fso.DeleteFolder ("D:\My Folder")
'Giai phóng tài nguyên
  Set fso = Nothing
End Sub


User avatar
truongphu
VIP
VIP
Posts: 4766
Joined: Sun 04/11/2007 10:57 am
Location: Cam Đức, Khánh hòa
Has thanked: 14 times
Been thanked: 520 times

Re: Hỏi về các lệnh liên quan đến thư mục!!!

Postby truongphu » Wed 05/01/2011 10:33 am

hai_nt wrote:Có cách nào xóa thư mục có chứa file nhưng cho vào thùng rác giống như ta xóa thư mục bằng cách Delete bình thường trên win không nhỉ.


* Bảo đảm Recycle Bin không bị khóa
(Recycle Bin.Properties: Do not move files to the recycle bin. Remove files immadiatelly when deleted)

* Thư mục của Recycle Bin là thư mục "Siêu hạng", hơn cả thư mục đặc biệt (Special Folder).
-> ký hiệu của special folder Recycle Bin là &HA&
Trong Registry, nó có path là:
{645FF040-5081-101B-9F08-00AA002F954E}

Thiệt có trời mới hiểu! :(

Để xóa (move) vào thùng rác, bạn phải dùng hàm API trên VB6, đó là SHFileOperation
chi tiết, mời xem trang:
How to use the Windows 95/98/Me Copy and Recycle functions in VB
http://support.microsoft.com/kb/165919

Rảnh rỗi, tôi viết bài: xóa vào Recycle Bin gọn hơn, dễ dùng
(mà hình như trong Bõ thủ thuật có nói vấn đề nầy hay sao ấy)
o0o--truongphu--o0o

.........
Ghé thăm:
Chuyện Linh Tinh


Return to “Visual Basic 6 và Visual Basic Script (VB & VBS)”

Who is online

Users browsing this forum: No registered users and 6 guests