Có Code nào mà hiện ra toàn bộ dung lượng của các Folder con không? (2 người xem)

  • Thread starter Thread starter LinDan
  • Ngày gửi Ngày gửi
Liên hệ QC

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

LinDan

Thành viên tiêu biểu
Tham gia
8/2/12
Bài viết
412
Được thích
111
Trong Folder của tôi chứa rất nhiều Folder con, nhưng tôi không biết có cách nào mà nó hiển thị toàn bộ dung lượng các Foder còn đó, xin nhờ các bạn giúp tôi đoạn code để thực hiện việc này.

Xin cảm ơn rất nhiều.
 
Trong Folder của tôi chứa rất nhiều Folder con, nhưng tôi không biết có cách nào mà nó hiển thị toàn bộ dung lượng các Foder còn đó, xin nhờ các bạn giúp tôi đoạn code để thực hiện việc này.

Xin cảm ơn rất nhiều.

Tức là sao đây?
- Lấy List Folder kèm theo dung lượng của từng folder?
- Hiện Folder size trong cửa sổ Explorer?
Ý bạn là cái nào?
 
Upvote 0
- Lấy List Folder kèm theo dung lượng của từng folder?
Dạ, đúng như thế thày ah.

- Hiện Folder size trong cửa sổ Explorer?

Hiện ở đâu cũng được, miễn sao biết được dung lượng của từng Folder con của 1 Folder bất kỳ cùng hiện ra một lúc (để khỏi phải ấn chuột phải vào từng cái mới xem được)
 
Upvote 0
Dạ, đúng như thế thày ah.



Hiện ở đâu cũng được, miễn sao biết được dung lượng của từng Folder con của 1 Folder bất kỳ cùng hiện ra một lúc (để khỏi phải ấn chuột phải vào từng cái mới xem được)

FileSystemObject là thứ "chuyên trị" file + folder... Không có gì là không làm được cả
Tặng bạn nè:
PHP:
Public Dic As Object
Private Sub FolderList(FolderName As String, InSub As Boolean)
  Dim SubFld As Object
  On Error Resume Next
  With CreateObject("Scripting.FileSystemObject")
    With .GetFolder(FolderName)
      Dic.Add .Path, .Size / 1024
      If InSub Then
        For Each SubFld In .SubFolders
          FolderList SubFld.Path, True
        Next SubFld
      End If
    End With
  End With
End Sub
PHP:
Sub Main()
  Dim Arr, i As Long, Item
  Application.ScreenUpdating = False
  Set Dic = CreateObject("Scripting.Dictionary")
  On Error Resume Next
  Range("A2:B10000").ClearContents
  With CreateObject("Shell.Application")
    FolderList .BrowseForFolder(0, "", 1).Self.Path, True
  End With
  Arr = Dic.Keys
  ReDim Arr(Dic.Count - 1, 1)
  For Each Item In Dic.Keys
    Arr(i, 0) = CStr(Item)
    Arr(i, 1) = Dic.Item(Item)
    i = i + 1
  Next
  With Range("A2").Resize(i, 2)
    .Offset(, 1).Resize(, 1).NumberFormat = "#,##0 ""KB"""
    .Value = Arr
  End With
  Application.ScreenUpdating = True
End Sub
Xem chi tiết trong file
 

File đính kèm

Upvote 0
Hỏi các tạo một loạt Folder con từ List danh sách trong cột A

Tôi muốn tạo một loạt các Folder con nằm trong trong thư mục E:\3. Truong THCS Tan Lap chẳng hạn, tên các Folder con là các ô trong cột A.

Sau đó tôi muốn thêm chức năng kích chuột đến ô nào trong cột A thì nó sẽ tự mở Folder ấy.

Cả 2 công đoạn trên đều có thể thực hiện bằng Code được không? Xin chỉ giúp cách làm
 

File đính kèm

Upvote 0
FileSystemObject là thứ "chuyên trị" file + folder... Không có gì là không làm được cả

Thưa thày Ndu, có cách nào mà chỉ lọc ra những Folder con cấp 1, ví dụ Forder E:\GIAI TRI nó chỉ lọc ra E:\GIAI TRI\2. Building (không lọc ra các cấp nhỏ hơn, ví dụ E:\GIAI TRI\2. Building\1. VAN BAN QUY PHAM PHAP LUAT\Van ban QPPL phuc vu lop Bat dong san bỏ qua không lọc do nó là Folder con cấp 3)

Rất mong thày có thể chỉ cho một số tính năng có thể làm được thông dụng của FileSystemObject.

Xin cảm ơn thày rất nhiều.
 
Lần chỉnh sửa cuối:
Upvote 0
Thưa thày Ndu, có cách nào mà chỉ lọc ra những Folder con cấp 1, ví dụ Forder E:\GIAI TRI nó chỉ lọc ra E:\GIAI TRI\2. Building (không lọc ra các cấp nhỏ hơn, ví dụ E:\GIAI TRI\2. Building\1. VAN BAN QUY PHAM PHAP LUAT\Van ban QPPL phuc vu lop Bat dong san bỏ qua không lọc do nó là Folder con cấp 3)

Rất mong thày có thể chỉ cho một số tính năng có thể làm được thông dụng của FileSystemObject.

Xin cảm ơn thày rất nhiều.

Thì thêm 1 biến đếm vào... Ví dụ thế này:
Mã:
Public Dic As Object, [COLOR=#ff0000][B]lCount As Long[/B][/COLOR]
Private Sub FolderList(FolderName As String, InSub As Boolean)
  Dim SubFld As Object
  On Error Resume Next
  With CreateObject("Scripting.FileSystemObject")
    With .GetFolder(FolderName)
      Dic.Add .Path, .Size / 1024
      [COLOR=#ff0000][B]lCount = lCount + 1
      If lCount >= 2 Then Exit Sub[/B][/COLOR]
      If InSub Then
        For Each SubFld In .SubFolders
          FolderList SubFld.Path, True
        Next SubFld
      End If
    End With
  End With
End Sub
-------------------------------
Tôi muốn tạo một loạt các Folder con nằm trong trong thư mục E:\3. Truong THCS Tan Lap chẳng hạn, tên các Folder con là các ô trong cột A.

Sau đó tôi muốn thêm chức năng kích chuột đến ô nào trong cột A thì nó sẽ tự mở Folder ấy.

Cả 2 công đoạn trên đều có thể thực hiện bằng Code được không? Xin chỉ giúp cách làm
Ví dụ thế này:
Mã:
Public Const fld = "E:\3. Truong THCS Tan Lap\"
Sub CreateFolder()
  Dim Arr, Item, sPath As String
  Arr = Range("A1:A5").Value
  With CreateObject("Scripting.FileSystemObject")
    If .FolderExists(fld) Then
      For Each Item In Arr
        sPath = fld & CStr(Item)
        If Not .FolderExists(sPath) Then .CreateFolder sPath
      Next
    End If
  End With
End Sub
và:
Mã:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim sPath As String
  On Error Resume Next
  If Not Intersect(Range("A1:A5"), Target) Is Nothing Then
    If Target.Count = 1 Then
      sPath = fld & Target.Value
      Shell "Explorer.exe /Select, " & """" & sPath & """", 1
    End If
  End If
End Sub
Điều đương nhiên là thư mục E:\3. Truong THCS Tan Lap phải có trước
 
Lần chỉnh sửa cuối:
Upvote 0
FileSystemObject là thứ "chuyên trị" file + folder... Không có gì là không làm được cả
Xin thày Ndu cho em hỏi đối với loại bài toán này thì ta có thể ghi Macro được không?
 
Upvote 0
Xin thày, nếu có thể xin thày giới thiệu dùm em một chút tài liệu về Scripting.FileSystemObject em tìm hoài mà chẳng thấy

(tức ý em muốn hiểu nó theo hệ thống để ứng dụng vào các bài khác nhau, bởi các câu lệnh của thày em không biết học từ đâu)
 
Upvote 0
Cái này thuộc VBScript bạn muốn nghiên cứu về nó thì mình xin gửi file này của anh Ndu gửi tặng trên Diễn đàn bạn có thể vào trực tiệp MSDN của MS xem cũng được
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom