Dùng VB6 để sao chép tập tin vào mọi thư mục
|
Đó hỏi: Xin e-CHÍP hướng dẫn cách viết một đoạn mã bằng VB6 để sao chép một tập tin vào mọi thư mục trong hệ thống (ví dụ: tập tin desktop.ini). Nếu trong thư mục có tập tin đó rồi thì tự động ghi đè lên mà không cần hỏi. <xuantruong83vn@>
|
Đây trả lời: Để chép tập tin vào tất cả thư mục, bạn phải đọc được hết các thư mục trên một ổ đĩa và lưu vào một danh sách, sau đó dùng lệnh FileCopy để chép tập tin lần lượt vào mỗi thư mục trong danh sách đọc được. Giả sử tập tin desktop.ini được đặt trong thư mục gốc của ổ đĩa D. Ta sẽ thiết kế một ứng dụng để chép tập tin này vào tất cả thư mục trên ổ đĩa D.
Trong VB6, bạn tạo một project mới. Trên form Form1 mặc định, vẽ một ListBox có tên là List1 (sau khi chạy thử ứng dụng thành công, bạn có thể gán thuộc tính Visible = False), một DirListBox có tên là Dir1 (thuộc tính Visible = False), và một CommandButton có tên là Command1, rồi gõ vào đoạn mã 1.
|
Đoạn mã 1
|
Private Sub Command1_Click()
DocCauTrucThuMuc ("D:")
For i = 0 To List1.ListCount - 1
FileCopy "D:desktop.ini", List1.List(i) & "desktop.ini"
Next
End Sub
Sub DocCauTrucThuMuc(ByVal sTenODia As String)
Dim iLevel As Integer, iMaxSize As Integer
Dim i As Integer, j As Integer
ReDim iDirCount(22) As Integer
ReDim sdirs(22, 1) As String
iLevel = 1
iDirCount(iLevel) = 1
iMaxSize = 1
sdirs(iLevel, iDirCount(iLevel)) = Left$(sTenODia, 2) & ""
Do
iLevel = iLevel + 1
iDirCount(iLevel) = 0
For j = 1 To iDirCount(iLevel - 1)
Dir1.Path = sdirs(iLevel - 1, j)
Dir1.Refresh
If iMaxSize < (iDirCount(iLevel) + Dir1.ListCount) Then
ReDim Preserve sdirs(22, _
iMaxSize + Dir1.ListCount + 1) As String
iMaxSize = Dir1.ListCount + iDirCount(iLevel) + 1
End If
For i = 0 To Dir1.ListCount - 1
iDirCount(iLevel) = _
iDirCount(iLevel) + 1 'count
'of sub-dirs
sdirs(iLevel, iDirCount(iLevel)) = Dir1.List(i)
Next i
Next j
List1.Clear
If iDirCount(iLevel) = 0 Then
For i = 1 To iLevel
For j = 1 To iDirCount(i)
List1.AddItem sdirs(i, j)
Next j
Next i
Exit Do
End If
Loop
End Sub
|
CHƯƠNG CAN CHÍP |
|
0 Góp ý:
Gởi góp ý mới
<< Trở về