File Object

tuhocvba

Administrator
Thành viên BQT
Thuộc tính
  • Attributes: Thiết định thuộc tính của file
  • DateCreated : Giá trị trả về là ngày mà file đã được tạo ra
  • DateLastAccessed : Giá trị trả về là ngày cuối cùng mà file được truy cập
  • DateLastModified : Giá trị rả về là ngày cuối cùng mà file được cập nhật.
  • Drive : Giá trị trả về là tên ổ đĩa chứa file
  • Name : Giá trị trả về là tên file
  • ParentFolder : Giá trị trả về là folder chứa file
  • Path : Giá trị trả về là đường dẫn file.
  • ShortName : Giá trị trả về là tên của file theo định dạng 8.3
  • ShortPath : Giá trị trả về là đường dẫn của file theo định dạng 8.3
  • Size : Giá trị trả về là kích thước của file
  • Type : Giá trị trả về là kiểu (chủng loại) của file

Phương thức
  • Copy: Copy file
  • Delete : Xóa file
  • Move : Di chuyển file tới nơi lưu trữ khác
  • OpenAsTextStream : Mở file text
Sau đây, ta sẽ lần lượt đi từng mục nhé.
Nguồn tham khảo và dịch:
 

tuhocvba

Administrator
Thành viên BQT
Attributes: Thiết định thuộc tính của file , hoặc lấy thông tin thuộc tính của file.
Giá trịThuộc tính
0​
File tiêu chuẩn thông thường
1​
File chế độ chỉ đọc, không chỉnh sửa
2​
File ẩn
4​
File hệ thống
8​
Disk drive volume label (Chỉ đọc, không chỉnh sửa)
16​
Folder hoặc đường dẫn (Chỉ đọc, không chỉnh sửa)
32​
File lưu trữ (archive file)
64​
Link hoặc shortcut (chỉ đọc, không chỉnh sửa)
128​
File nén (chỉ đọc, không chỉnh sửa)

Khi thiết định thuộc tính chú ý:
Ta muốn thiết định thuộc tính của file là : file ẩn (2) + chỉ đọc, không cho chỉnh sửa (1) = 2+1 = 3. Như vậy thuộc tính cần thiết định cho file sẽ là 3.
Mã:
Sub test56()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Hủy bỏ chế độ file chỉ đọc C:\Work\Book1.xls
    ''Từ nay file có thể chỉnh sửa được
    If FSO.GetFile("C:\Work\Book1.xls").Attributes And 1 Then
        FSO.GetFile("C:\Work\Book1.xls").Attributes = 0
    End If
    Set FSO = Nothing
End Sub
Nguồn:
 

Euler

Biên Tập Viên
Thuộc tính DateCreated: Giá trị trả về là ngày và giờ đã khởi tạo file (String).

Ví dụ:
Mã:
Sub test1016()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Se hien thi ngay gio ma file nay duoc tao ra  C:\Work\Book1.xlsx
    MsgBox FSO.GetFile("C:\VBA\thvba1226.xlsx").DateCreated
    Set FSO = Nothing
End Sub
Bạn sẽ ngạc nhiên, cái này để ứng dụng làm gì? Nó ứng dụng để quản lý file.

Bây giờ ta có một câu chuyện như sau:

Công ty A có vốn đầu tư của Hàn Quốc, hàng năm tổ chức kỳ thi năng lực tiếng Hàn Quốc cho nhân viên người Việt Nam. Tuy nhiên, số lượng người có thể tham dự kỳ thi là hữu hạn. Vì vậy họ sẽ gửi macro cho nhân viên điền nguyện vọng. Nhân viên điền nguyện vọng xong thì ấn nút, macro sẽ tạo ra file nguyện vọng ứng với mã nhân viên, cất vào một folder trên sever.

Ban tổ chức kỳ thi sẽ sử dụng một macro khác để tổng hợp nguyện vọng, ưu tiên ai gửi yêu cầu sớm thì sẽ được xếp ưu tiên tham gia kỳ thi. Như vậy cần phải xác định file nguyện vọng ấy được tạo ra vào thời điểm nào. Và người tạo macro sẽ sử dụng thuộc tính này của FSO để xây dựng macro.
 

giaiphapvba

Administrator
Thành viên BQT
Thuộc tính DateLastAccessed : Giá trị trả về là ngày cuối cùng mà file được truy cập.
Giá trị trả về là string.
Mã:
Sub test58()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''C:\Work\Book1.xlsx được truy cập(mở) lần cuối là khi nào
    MsgBox FSO.GetFile("C:\Work\Book1.xlsx").DateLastAccessed
    Set FSO = Nothing
End Sub
DateLastModified : Giá trị rả về là ngày cuối cùng mà file được cập nhật.
Giá trị trả về là string.
Mã:
Sub test59()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''C:\Work\Book1.xls được chỉnh sửa cập nhật lần cuối là khi nào
    MsgBox FSO.GetFile("C:\Work\Book1.xlsx").DateLastModified
    Set FSO = Nothing
End Sub
 

tuhocvba

Administrator
Thành viên BQT
Thuộc tính Drive : Giá trị trả về là tên ổ đĩa chứa file.
Cấu trúc: File.Drive
Mã:
Sub test60()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Giá trị trả về là ổ đĩa「C:」
    MsgBox FSO.GetFile("C:\Work\Book1.xlsx").Drive
    Set FSO = Nothing
End Sub
Thuộc tính Name : Giá trị trả về tên file. Bạn cũng có thể dùng thuộc tính này để thiết định tên cho file. Nhưng nếu đã tồn tại file có tên giống như tên bạn muốn thay thế thì sẽ phát sinh lỗi.
Cấu trúc: File.Name
Mã:
Sub test61()
    Dim FSO As Object
    Set FSO = CreateObject("Scripting.FileSystemObject")
    ''Thay đổi tên file C:\Work\Book1.xls thành Sample.xls
    FSO.GetFile("C:\Work\Book1.xlsx").Name = "Sample.xls"
    Set FSO = Nothing
End Sub
 
Top