• 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

Các thao tác trên File

Các thủ thuật về hệ thống, thư mục, tập tin và mạng
Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

Các thao tác trên File

Gửi bàigửi bởi truongphu » T.Ba 08/04/2008 12:48 pm

Thủ thuật: Các thao tác trên File
Tác giả: truongphu
Mô tả: Các thao tác trên File là bài viết tổng hợp các lệnh dủng trong VB6 và VBScrip5, riêng phần VBSrip5 là phần giúp cho thao tác trên file nhẹ nhàng mà VB6 khó xử lý


Mã: Chọn hết

  1. Private Sub Form_Load()
  2. 'Kiêm tra File
  3.     If Dir("C:\windows\system32\Cmd111.exe") = Empty Then
  4.         MsgBox ("Không có Cmd111.exe")
  5.     Else
  6.         MsgBox ("Có Cmd111.exe")
  7.     End If
  8. 'Copy file tu thu muc này sang thu muc khác
  9.     FileCopy "C:\Config.sys", "D:\MyFile.txt"
  10. 'Xóa file
  11.     Kill "D:\MyFile.txt"
  12. 'ngày gio' mà File Ðuoc tao hoac ngày gia chinh sua cuôi cùng
  13.     Dim MyStamp
  14.     MyStamp = FileDateTime("C:\Config.sys")
  15.     MsgBox MyStamp
  16. 'Tra ve so Byte cua File
  17.     MsgBox FileLen("C:\Config.sys") & " bytes"
  18.    
  19. 'Cho biêt thuôc tính hiên tai File
  20.     MyStamp = GetAttr("C:\Config.sys")
  21.     MsgBox MyStamp
  22. 'Ðôi tên tâp tin
  23.     Name "C:\Config.sys" As "C:\Config111.sys"
  24.     Name "C:\Config111.sys" As "C:\Config.sys"
  25. 'Gán thuôc tính cho File và thu muc
  26.     SetAttr "C:\Config.sys", vbHidden + vbReadOnly
  27.    
  28.     ' PHÂN VBSCRIP5
  29. 'Ðoc tên file hay folder cuôi cùng cua Path
  30. Dim fso, GetAName, MySt
  31.   Set fso = CreateObject("Scripting.FileSystemObject")
  32.   GetAName = fso.GetFileName("C:\windows\system32\Cmd.exe")
  33.   MsgBox GetAName
  34.     GetAName = fso.GetFileName("C:\windows\system32\")
  35.     MsgBox GetAName
  36. 'Ðoc tên file không Ðuôi hoac folder
  37.   GetAName = fso.GetBaseName("C:\windows\system32\Cmd.exe")
  38.   MsgBox GetAName
  39.      GetAName = fso.GetBaseName("C:\windows\system32\")
  40.      MsgBox GetAName
  41. 'Ngày tao, ngày sua, ngay truy nhâp file cuôi cùng
  42.     Set GetAName = fso.GetFile("C:\windows\system32\Cmd.exe")
  43.     MySt = GetAName.DateCreated
  44.     MySt = MySt & vbCrLf & GetAName.DateLastModified
  45.     MySt = MySt & vbCrLf & GetAName.DateLastAccessed
  46.     MsgBox MySt
  47. 'Tao và Mo' file và Viêt vào file
  48.     Const ForReading = 1, ForWriting = 2, ForAppending = 8
  49.     Set GetAName = fso.OpenTextFile("c:\test.txt", ForWriting, True)
  50.     'Viêt 1 dòng
  51.     GetAName.Write "Hello world!"
  52.     'viêt 3 ký tu trang
  53.     GetAName.WriteBlankLines (3)
  54.     'viêt 1 dòng và ký tu xuông dòng
  55.     GetAName.WriteLine "Testing 1, 2, 3."
  56. 'Mo' file và Ðoc file
  57.   Set GetAName = fso.OpenTextFile("c:\test.txt", ForReading)
  58.   MySt = GetAName.ReadAll
  59. 'Tao file Ðon gian
  60.     Set GetAName = fso.CreateTextFile("c:\test.txt", True)
  61. 'Ðóng file
  62.     GetAName.Close
  63. 'Move file
  64.     Set GetAName = fso.GetFile("c:\test.txt")
  65.     GetAName.Move "d:\test.txt"
  66. 'Xóa file
  67.     GetAName.Delete
  68.  
  69.      'BÔ SUNG PHÂN FOLDER
  70.  'Ðoc tên tuyêt Ðôi cua folder, vd Ðang o' tai c:\mydocuments\reports
  71.     MsgBox fso.GetAbsolutePathName("c:\\\")
  72.  'Cú pháp: "c:" --> c:\mydocuments\reports  "c:.." --> c:\mydocuments = lùi 1 câp
  73.  '"c:\..\..\mydocuments" --> c:\mydocuments = Ðoc lùi cho Ðên folder chi Ðinh
  74.  '"c:\\\" --> c:\ = lùi câp cao nhât "region1" --> c:\mydocuments\reports\region1 = Ðoc to'i thêm câp
  75.  '"c:*.*\may97" --> c:\mydocuments\reports\*.*\may97 = Ðoc to'i cho Ðên folder chi Ðinh
  76.    
  77.  'Ðoc thu muc cha
  78.     MsgBox fso.GetParentFolderName("C:\windows\system")
  79. End Sub
  80.  


o0o--truongphu--o0o

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

PhongThanInfor
Thành viên chính thức
Thành viên chính thức
Bài viết: 31
Ngày tham gia: T.Hai 21/04/2008 11:01 pm

Re: Các thao tác trên File

Gửi bàigửi bởi PhongThanInfor » T.Hai 21/04/2008 11:44 pm

Đúng vậy, không thể xóa file ẩn vì không tìm thấy file ẩn đó vì vậy muốn xóa được thì ta phải bỏ thuộc tính ẩn trước khi xóa:

Mã: Chọn hết

  1. Private Sub Command1_Click()
  2.   BoTTinh ("đường dẫn đến file cần xóa")
  3.   Kill ("đường dẫn đến file cần xóa")
  4. End Sub
  5. Function BoTTinh(PathFile As String)
  6. Dim BoThuoctinh As Byte
  7.  BoThuoctinh = GetAttr(PathFile)
  8.  BoThuoctinh = BoThuoctinh And Not vbReadOnly  'bỏ thuộc tính chỉ đọc
  9.  BoThuoctinh = BoThuoctinh And Not vbHidden   'bỏ thuộc tính ẩn
  10.  BoThuoctinh = BoThuoctinh And Not vbSystem   'bỏ thuộc tính ẩn hệ thống
  11.  SetAttr PathFile, BoThuoctinh
  12. End Function

khoabi
Thành viên chính thức
Thành viên chính thức
Bài viết: 26
Ngày tham gia: T.Năm 10/04/2008 8:09 am

Re: Các thao tác trên File

Gửi bàigửi bởi khoabi » T.Tư 08/10/2008 4:02 pm

:x Rất cám ơn bạn truongphu. Mình đã áp dụng tốt code VB6 của bạn đối với file trong Local, còn đối với FTPServer mình đã loay hoay nhưng thật sự ko biết khai báo đường dẫn như thế nào để CT đọc được. Bạn tranh thủ giúp mình. Cám ơn bạn trước.
Thân ái

Hình đại diện của người dùng
truongphu
VIP
VIP
Bài viết: 4756
Ngày tham gia: CN 04/11/2007 10:57 am
Đến từ: Cam Đức, Khánh hòa
Has thanked: 14 time
Been thanked: 509 time

Re: Các thao tác trên File

Gửi bàigửi bởi truongphu » T.Bảy 11/10/2008 5:44 pm

khoabi đã viết:còn đối với FTPServer mình đã loay hoay nhưng thật sự ko biết khai báo đường dẫn như thế nào để CT đọc được

Thú thật tôi cũng không thạo lắm
Bạn thử tham khảo:
How To Transfer Files from a PocketPC to an FTP Server
http://support.microsoft.com/kb/305598
o0o--truongphu--o0o

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

Hình đại diện của người dùng
T7
Thành viên danh dự
Thành viên danh dự
Bài viết: 415
Ngày tham gia: T.Năm 24/05/2007 8:19 pm
Đến từ: Long Xuyên - An Giang
Been thanked: 12 time
Liên hệ:

Re: Các thao tác trên File

Gửi bàigửi bởi T7 » T.Bảy 11/10/2008 6:56 pm

PhongThanInfor đã viết:Đúng vậy, không thể xóa file ẩn vì không tìm thấy file ẩn đó vì vậy muốn xóa được thì ta phải bỏ thuộc tính ẩn trước khi xóa:

Mã: Chọn hết

  1. Private Sub Command1_Click()
  2.   BoTTinh ("đường dẫn đến file cần xóa")
  3.   Kill ("đường dẫn đến file cần xóa")
  4. End Sub
  5. Function BoTTinh(PathFile As String)
  6. Dim BoThuoctinh As Byte
  7.  BoThuoctinh = GetAttr(PathFile)
  8.  BoThuoctinh = BoThuoctinh And Not vbReadOnly  'bỏ thuộc tính chỉ đọc
  9.  BoThuoctinh = BoThuoctinh And Not vbHidden   'bỏ thuộc tính ẩn
  10.  BoThuoctinh = BoThuoctinh And Not vbSystem   'bỏ thuộc tính ẩn hệ thống
  11.  SetAttr PathFile, BoThuoctinh
  12. End Function

Ngoài ra còn có thể sử dụng hàm API DeleteFile để xóa thẳng tay các file ẩn mà không cần phải cho nó hiện ra :D

Mã: Chọn hết

  1. Private Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long
  2. 'Cách dùng cũng giống như hàm Kill vậy đó
While (i <= you) i++;

neods
Thành viên chính thức
Thành viên chính thức
Bài viết: 12
Ngày tham gia: CN 03/07/2011 11:45 am

Re: Các thao tác trên File

Gửi bàigửi bởi neods » T.Ba 05/07/2011 2:36 pm

PhongThanInfor đã viết:Đúng vậy, không thể xóa file ẩn vì không tìm thấy file ẩn đó vì vậy muốn xóa được thì ta phải bỏ thuộc tính ẩn trước khi xóa:

Mã: Chọn hết

Private Sub Command1_Click()  BoTTinh ("đường dẫn đến file cần xóa")  Kill ("đường dẫn đến file cần xóa")End SubFunction BoTTinh(PathFile As String)Dim BoThuoctinh As Byte BoThuoctinh = GetAttr(PathFile) BoThuoctinh = BoThuoctinh And Not vbReadOnly  'bỏ thuộc tính chỉ đọc BoThuoctinh = BoThuoctinh And Not vbHidden   'bỏ thuộc tính ẩn BoThuoctinh = BoThuoctinh And Not vbSystem   'bỏ thuộc tính ẩn hệ thống SetAttr PathFile, BoThuoctinhEnd Function

Bác ơi, với đoạn code này ta chỉ có thể bỏ thuộc tính với những file có đuôi, còn file ko đuôi thì sao. Bác giúp em với, tiện bác viết luôn đoạn code đặt thuộc tính đc ko :-s

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 137 time
Liên hệ:

Re: Các thao tác trên File

Gửi bàigửi bởi VuVanHoanh » T.Ba 05/07/2011 7:57 pm

2 cách:
1. rename nó đi, thêm đuôi cho nó là được rồi cứ thế mà gỡ thuộc tính :D
2. Dùng CMD, đổi thuộc tính cho nó luôn :D
Since 2008...
One love! :x

neods
Thành viên chính thức
Thành viên chính thức
Bài viết: 12
Ngày tham gia: CN 03/07/2011 11:45 am

Re: Các thao tác trên File

Gửi bàigửi bởi neods » T.Tư 06/07/2011 10:35 pm

Dùng CMD thì em biết rùi nhưng em muốn tích hợp tất cả code lên vb6 cơ :D.
Em chọn giải pháp rename :D
À mà bác cho hỏi code này:
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set GetAName = fso.OpenTextFile("c:\test.txt", ForWriting, True)
'viêt 1 dòng và ký tu xuông dòng
GetAName.WriteLine "Testing 1, 2, 3."

Em run thì báo lỗi :" Object Requied" là sao hả bác


Quay về “[VB] Hệ thống - Tập tin - Thư mục và Mạng”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách