Folder Object-Completed

tuhocvba

Administrator
Thành viên BQT
Thuộc tính:
  • Attributes : Thiết định thuộc tính cho Folder
  • DateCreated : Ngày mà folder được tạo ra
  • DateLastAccessed : Ngày gần đây nhất mà folder được truy cập
  • DateLastModified : Ngày gần đây nhất mà folder được cập nhật
  • Drive : Trả về tên ổ đĩa chứa folder
  • Files: Trả về tất cả các file mà folder chứa. Xem thêm .
  • IsRootFolder : Folder được chỉ định có phải là thư mục gốc hay không.
  • Name : Thiết định tên folder, hoặc lấy tên folder.
  • ParentFolder : Trả về tên thư mục mẹ chứa folder được chỉ định
  • Path : Trả về tên đường dẫn của thư mục.
  • ShortName : Trả về tên thư mục theo kiểu 8.3
  • ShortPath : Trả về đường dẫn thư mục theo kiểu 8.3
  • Size : Trả về dung lượng của thư mục
  • SubFolders : Trả về tất cả các folder mà thư mục chỉ định chứa chúng.
  • Type : Trả về kiểu của folder

Phương thức:
  • Copy: Copy folder
  • CreateTextFile: Tạo file kiểu text (không nhất thiết phải là file txt, có thể là tạo ra file .c hoặc file .html, ...)
  • Delete: Xóa folder
  • Move: Di chuyển folder
Nguồn tham khảo và dịch:
 

giaiphapvba

Administrator
Thành viên BQT
Attributes
Cấu trúc:
Folder.Attributes
Giá trịÝ nghĩa
0​
File tiêu chuẩn
1​
Chế độ chỉ được đọc file (không cho ghi)
2​
Ẩn file
4​
File hệ thống
8​
Nhãn ổ đĩa (chỉ đọc, không cho thay đổi thuộc tính)
16​
Thư mục (chỉ đọc, không thay đổi thuộc tính)
32​
Lưu trữ tập tin
64​
Đường dẫn hoặc shortcut (chỉ đọc, không thay đổi thuộc tính
128​
Tệp tin nén (chỉ đọc, không thay đổi thuộc tính)
Khi ta đọc thông tin thuộc tính, hoặc thiết định giá trị thuộc tính, ta sẽ sử dụng cấu trúc này.
Ta ví dụ, chúng ta thiết định folder mà các tệp tin bị ẩn (2) và các tệp tin này chỉ được đọc mà không được ghi thông tin vào (1). Như vậy thuộc tính sẽ là 1 + 2 = 3.
Mã:
Sub test38()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Thiết định thuoc tính Read only & Hide cho thư mục C:\Work
    If Not FSO.GetFolder("C:\Work").Attributes And (1 + 2) Then
        FSO.GetFolder("C:\Work").Attributes = 1 + 2
    End If
    Set FSO = Nothing
End Sub
Nguồn:
 

Euler

Mod
Thành viên BQT
Có thể viết luôn là :
Mã:
FSO.GetFolder("C:\Work").Attributes = 3
Sau khi chạy xong thì thư mục có bị ẩn. Còn file thì vẫn thấy ghi bình thường, sau khi ghi xong máy tính còn hỏi có muốn lưu thay đổi không.
 

tuhocvba

Administrator
Thành viên BQT
DateCreated
Cấu trúc:
Folder.DateCreated
Thuộc tính này sẽ cho chúng ta biết ngày giờ mà folder được tạo ra.
Mã:
Sub test39()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Ngày giờ mà folder C:\VBA được tạo ra
    MsgBox FSO.GetFolder("C:\VBA").DateCreated
    Set FSO = Nothing
End Sub
Nguồn:
 

Euler

Mod
Thành viên BQT
Nếu chúng ta bịa ra một folder không tồn tại thì sẽ xảy ra lỗi.
Mã:
Sub test39()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''folder C:\VBA2 không có thật
    MsgBox FSO.GetFolder("C:\VBA2").DateCreated
    Set FSO = Nothing
End Sub
Bạn cần đăng nhập để thấy đính kèm
 

tuhocvba

Administrator
Thành viên BQT
DateLastAccessed
Cấu trúc:
Folder.DateLastAccessed
Thuộc tính này sẽ cho biết ngày giờ gần nhất mà folder được truy cập.
Mã:
Sub test40()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''C:\Work được truy cập gần nhất là khi nào
    MsgBox FSO.GetFolder("C:\Work").DateLastAccessed
    Set FSO = Nothing
End Sub
 

Euler

Mod
Thành viên BQT
DateLastModified
Cấu trúc:
Folder.DateLastModified
Cấu trúc cho biết thời điểm gần đây nhất mà Folder được cập nhật nội dung.
Giá trị trả về dưới dạng chuỗi ký tự.
Mã:
Sub test41()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Hiển thị ngày giờ mà thư mục C:\Work được cập nhật gần đây nhất
    MsgBox FSO.GetFolder("C:\Work").DateLastModified
    Set FSO = Nothing
End Sub
Nguồn:
 

Euler

Mod
Thành viên BQT
Drive
Cấu trúc:
Folder.Drive
Nó sẽ cho biết đường dẫn này là của ổ đĩa nào.
Mã:
Sub test42()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Tra ket qua la「D:」
    MsgBox FSO.GetFolder("D:\VBA").Drive
    Set FSO = Nothing
End Sub
Nếu đường dẫn không tồn tại, sẽ xảy ra .
 

tuhocvba

Administrator
Thành viên BQT
Files
Cấu trúc:
Folder.Files
Nó sẽ trả về số lượng file có trong thư mục.
Mã:
Sub test43()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Hiển thị số lượng file có trong thư mục C:\Work
    MsgBox FSO.GetFolder("C:\Work").Files.Count
    Set FSO = Nothing
End Sub
Nếu đường dẫn không tồn tại, sẽ xảy ra .
 

Euler

Mod
Thành viên BQT
IsRootFolder
Cấu trúc:
Folder.IsRootFolder
Nó sẽ trả kết quả là True nếu đó là thư mục gốc, là False nếu không phải là thư mục gốc. Nếu đường link không tồn tại sẽ xảy ra .
Ví dụ:
Mã:
Sub test44()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Root Folder hay khong?
    If FSO.GetFolder("D:\").IsRootFolder Then
        MsgBox "Root Folder"
    Else
        MsgBox "Khong phai Root Folder"
    End If
    Set FSO = Nothing
End Sub
Nguồn:
 

tuhocvba

Administrator
Thành viên BQT
Name
Cấu trúc:
Folder.Name
Nó sẽ cho chúng ta lấy (hoặt thiết định) tên của folder. Nếu thiết định tên mà tên ấy trùng với tên folder khác thì sẽ sinh ra lỗi.
Mã:
Sub test45()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''C:\Work đổi tên thành Work2
    FSO.GetFolder("C:\Work").Name = "Work2"
    Set FSO = Nothing
End Sub
 

giaiphapvba

Administrator
Thành viên BQT
ParentFolder
Cấu trúc:
Folder.ParentFolder
Nó sẽ trả về tên thư mục mẹ.
Mã:
Sub test46()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Nó sẽ trả về là「C:\Work」
    MsgBox FSO.GetFolder("C:\Work\Sub").ParentFolder
    Set FSO = Nothing
End Sub
Nguồn:
 

Euler

Mod
Thành viên BQT
Path
Cấu trúc:
Folder.Path
Nó sẽ trả về đường link của thư mục đó.
Mã:
Sub test47()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Gia tri hien thi la「C:\Work」
    MsgBox FSO.GetFolder("C:\Work").Path
    Set FSO = Nothing
End Sub
Nếu folder không tồn tại thì chương trình trên sẽ xuất hiện .
Nguồn:
 

vbano1

SMod
Thành viên BQT
ShortName
Cấu trúc:
Folder.ShortName
Nó sẽ trả về tên thư mục theo định dạng 8.3 (tên viết tắt). Tên thư mục sẽ rút xuống còn 8 ký tự và không có khoảng trống.
Đôi khi tên thư mục quá dài, chúng ta muốn hiển thị ngắn trên ListBox hay ListView, thì đây có thể là giải pháp cho các bạn áp dụng.
Mã:
Sub test48()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Microsoft Office sẽ được hiển thị là 「MICROS~2」
    MsgBox FSO.GetFolder("C:\Program Files\Microsoft Office").ShortName
    Set FSO = Nothing
End Sub
Nguồn:
 

vbano1

SMod
Thành viên BQT
ShortPath
Cấu trúc:
Folder.ShortPath
Nó sẽ trả về tên đường dẫn theo định dạng 8.3 (tên viết tắt).
Mã:
Sub test49()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Hiển thị là「C:\PROGRA~1\MICROS~2」
    MsgBox FSO.GetFolder("C:\Program Files\Microsoft Office").ShortPath
    Set FSO = Nothing
End Sub
Nếu folder không tồn tại thì chương trình trên sẽ xuất hiện .
Nguồn:
 

Euler

Mod
Thành viên BQT
Size
Cấu trúc:
Folder.Size
Nó trả về kích thước của toàn bộ tập tin có trong folder
Mã:
Sub test50()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Tinh tong dung luong toan bo file co trong C:\Work
    MsgBox FSO.GetFolder("C:\Work").Size
    Set FSO = Nothing
End Sub
Nguồn:
 

Euler

Mod
Thành viên BQT
SubFolders
Cấu trúc:
Folder.SubFolders
Nó trả về tất cả các thư mục con bên trong thư mục mẹ.
Giá trị trả về là Folders Collections bao gồm tất cả các bên trong Folder mẹ.
Mã:
Sub test51()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Hien thi so luong thu muc con nam ben trong C:\Work
    MsgBox FSO.GetFolder("C:\Work").SubFolders.Count
    Set FSO = Nothing
End Sub
Nguồn:
 

vanthanhVBA

Thành viên
Type
Cấu trúc:
Folder.Type
Thuộc tính này trả về kiểu của folder.
Mã:
Sub test52()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Hien thi la「File Folder」
    MsgBox FSO.GetFolder("C:\Users").Type
    Set FSO = Nothing
End Sub
Nguồn:
 

Yukino Ichikawa

Thành viên
Phương thức Copy:
Cấu trúc: Folder.Copy destination[, overwrite]
Tham số destination: Là đường dẫn của thư mục lưu trữ bản copy. Nếu ký tự cuối cùng của destination không phải là "\" thì toàn bộ file của folder copy sẽ được paste trực tiếp vào trong đường dẫn destination.
Nếu ký tự cuối cùng của destination là "\" thì folder được copy sẽ là sub folder trong đường dẫn destination.

Tham số overwrite: có thể giản lược không cần chỉ định. Nếu chỉ định là True thì sẽ thực thi copy ghi đè. Nếu chỉ định là False thì sẽ không thực thi copy ghi đè, có khả năng tạo ra lỗi nếu đã có folder hay file trùng tên đã tồn tại trong đó. Trong trường hợp không chỉ định gì, máy tính tự hiểu tham số này là True.

Phương thức Copy của Folder Object hoạt động giống như phươnng thức của FileSystemObject.

Mã:
Sub test53()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Toan bo file cua thu mucC:\Work se duoc copy vao C:\Tmp
    FSO.GetFolder("C:\Work").Copy "C:\Tmp"
    ''Copy C:\Work va bien no tro thanh Sub folder cua C:\Tmp => C\Tmp\Work
    FSO.GetFolder("C:\Work").Copy "C:\Tmp\"
    Set FSO = Nothing
End Sub
Nguồn:
 

vanthanhVBA

Thành viên
Phương thức CreateTextFile:
Cấu trúc: Folder.CreateTextFile(filename[, overwrite[, unicode]])
Phương thức này sẽ tạo ra file txt. Nó cũng tương tự phương thức .

Tham số filename là đường dẫn file bao gồm cả tên file mà nó sẽ tạo ra. Ví dụ: "D:\VBA\vidu.txt"

Tham số overwrite : Đây là tham số có thể giản lược. Giá trị mặc định là True nếu như bạn bỏ qua không chỉ thị rõ ràng tham số này. Nếu là True thì phương thức này sẽ tiến hành tạo file mới và ghi đè, không quan tâm trong thư mục đã tồn tại file trùng tên hay chưa.

Tham số unicode: Đây là tham số có thể giản lược. Giá trị mặc định là False nếu như bạn bỏ qua không chỉ thị rõ ràng tham số này. Nếu là False, thì định dạng file sẽ lưu kiểu ASCII. Nếu là True thì nó sẽ lưu dưới dạng Unicode.
Ví dụ:
Mã:
Sub test54()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Tao ra file C:\Work\Sample.txt, va ghi ngay gio hien tai vao
    With FSO.GetFolder("C:\Work").CreateTextFile("Sample.txt")
        .WriteLine Now
    End With
    Set FSO = Nothing
End Sub
Nguồn tham khảo:
 
Top