Thông tin
  • Đánh dấu xác nhận câu hỏi đã được giải quyết để giúp diễn đàn nâng cao chất lượng [cách sử dụng]
  • Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết [nội qui]
  • Tìm kiếm trước khi đặt câu hỏi

VB6 - Lấy tên file trong đường dẫn cho trước  Chủ đề đã được giải quyết

Góc trao đổi, hỏi đáp của ngôn ngữ Visual Basic 6 và Visual Basic Script

Các điều hành viên: Apple, nhochoclaptrinh, hongtamtk

VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi khoabi » Thứ 2 24/08/2009 9:55 am

- Bạn nào biết cho mình xin code lấy tên file trong đường dẫn cho trước. Ví dụ: đọc tất cả tên file trong đường dẫn "D:\Data\"
- Tìm tất cả các file có tên cho trước trong đường dẫn cho trước để copy qua thư mục khác. Ví dụ: tìm các file có tên sau trong đường dẫn "D:\Data\" : 01082009.xls, 02082009.xls, 03082009.xls, 04082009.xls, 05082009.xls để copy qua thư mục khác (D:\Tam).
Mong các bạn tranh thủ giúp mình. Chân thành cám ơn các bạn trước.
khoabi
Thành viên chính thức
Thành viên chính thức
 
Bài viết: 25
Ngày tham gia: Thứ 5 10/04/2008 8:09 am
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước  Chủ đề đã được giải quyết

Gửi bàigửi bởi gtdcomputer » Thứ 2 24/08/2009 10:14 am

Cái nì có nhìu mà bạn. Trong VBlip cũng có mừ.
Ví dụ nhe:
Mã: Chọn tất cả
  1. Sub LayFile(ByVal ThuMuc As String)
  2. Dim F As String
  3. If Right(ThuMuc, 1) <> "\" Then ThuMuc = ThuMuc & "\"
  4. F = Dir$(ThuMuc & "*.*")
  5. List1.Clear
  6. While Len(F)
  7.     List1.AddItem F
  8.     F = Dir$
  9. Wend
  10. End Sub
Chán Win mới rồi. Trở lại WinXP thân iêu.

Happiness is not in money, but in it quantity
Hình đại diện của thành viên
gtdcomputer
Thành viên danh dự
Thành viên danh dự
 
Bài viết: 1225
Ngày tham gia: Thứ 6 18/07/2008 12:08 pm
Đến từ: Kiên Giang
Đã cảm ơn: 2 lần
Được cảm ơn: 96 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi clarkkent » Thứ 2 24/08/2009 11:54 am

Nếu làm biếng thì có thể xài FileListBox, set thuộc tích Path của nó là D:\Data , còn muốn lấy chỉ 1 định dạng nào đó thì set Pattern là *.* (ví dụ xls là *.xls)
• Hôm bây: www.tinsoftware.com ^ ^
Cố gắng lên...
Hình đại diện của thành viên
clarkkent
Mạnh Thường Quân
Mạnh Thường Quân
 
Bài viết: 1641
Ngày tham gia: Thứ 4 16/04/2008 11:25 am
Đến từ: Chợ Lách - Bến Tre
Đã cảm ơn: 0 lần
Được cảm ơn: 26 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi khoabi » Thứ 2 24/08/2009 1:58 pm

Cám ơn các bạn, mình đã thực hiện được.
Còn Saerch các file theo chủ định để copy qua thư mục khác?
Cám ơn các bạn trước
khoabi
Thành viên chính thức
Thành viên chính thức
 
Bài viết: 25
Ngày tham gia: Thứ 5 10/04/2008 8:09 am
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi gtdcomputer » Thứ 2 24/08/2009 2:02 pm

Tên hàm:
FileCopy

Mô tả:
FileCopy source, destination
Copy file từ thư mục này sang thư mục khác

Tham số:
source
Đường dẫn nguồn
destination
Đường dẫn đích

Ví dụ:
Mã: Chọn tất cả
  1. Option Explicit
  2. Private Sub Form_Load()
  3.     FileCopy "D:\MyFile.txt", "C:\MyFile.txt"
  4. End Sub
Chán Win mới rồi. Trở lại WinXP thân iêu.

Happiness is not in money, but in it quantity
Hình đại diện của thành viên
gtdcomputer
Thành viên danh dự
Thành viên danh dự
 
Bài viết: 1225
Ngày tham gia: Thứ 6 18/07/2008 12:08 pm
Đến từ: Kiên Giang
Đã cảm ơn: 2 lần
Được cảm ơn: 96 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi khoabi » Thứ 2 24/08/2009 2:06 pm

Ý mình muốn nói code Search như công cụ Search trong Win vậy (còn copy file ko thành vấn đề)
khoabi
Thành viên chính thức
Thành viên chính thức
 
Bài viết: 25
Ngày tham gia: Thứ 5 10/04/2008 8:09 am
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi gtdcomputer » Thứ 2 24/08/2009 3:15 pm

Mã: Chọn tất cả
  1. Ghi chú:
  2. MATH-INFO
  3.  
  4. Ví dụ:
  5. Option Explicit
  6.  
  7. Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileW" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
  8. Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileW" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
  9. Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
  10.  
  11. Const FILE_ATTRIBUTE_DIRECTORY = &H10
  12. Const FILE_ATTRIBUTE_HIDDEN = &H2
  13. Const FILE_ATTRIBUTE_NORMAL = &H80
  14. Const FILE_ATTRIBUTE_READONLY = &H1
  15. Const FILE_ATTRIBUTE_SYSTEM = &H4
  16.  
  17. Private Type FILETIME
  18.     dwLowDateTime As Long
  19.     dwHighDateTime As Long
  20. End Type
  21.  
  22.  
  23. Private Type WIN32_FIND_DATA
  24.     dwFileAttributes As Long
  25.     ftCreationTime As FILETIME
  26.     ftLastAccessTime As FILETIME
  27.     ftLastWriteTime As FILETIME
  28.     nFileSizeHigh As Long
  29.     nFileSizeLow As Long
  30.     dwReserved0 As Long
  31.     dwReserved1 As Long
  32.     cFileName As String * 255
  33.     cAlternate As String * 14
  34. End Type
  35.  
  36. Private Sub Command1_Click()
  37.     WalkDir Text1.Text, Text2.Text
  38. End Sub
  39.  
  40. Private Sub WalkDir(sFolder As String, TapTin As String)
  41.     Dim DirCount As Integer, fileCount As Integer
  42.     Dim myFolder As New Collection
  43.     Dim FileData As WIN32_FIND_DATA
  44.     Dim res As Long, hSearch  As Long, fileName As String
  45.  
  46.     DirCount = 0
  47.     fileCount = 0
  48.     myFolder.Add (sFolder)
  49.  
  50.     Do While (myFolder.Count)
  51.  
  52.         sFolder = myFolder.Item(1)
  53.         myFolder.Remove (1)
  54.  
  55.         hSearch = FindFirstFile(StrConv(sFolder & "\*.*", vbUnicode), FileData)
  56.         If (hSearch = -1) Then GoTo 1
  57.  
  58.         Do
  59.             fileName = TrimPath(FileData.cFileName)
  60.  
  61.             If (fileName <> ".") And (fileName <> "..") Then
  62.  
  63.                 If (FileData.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) Then
  64.  
  65.                     myFolder.Add (sFolder & "\" & fileName)
  66.                     DirCount = DirCount + 1
  67.                     '---------------'
  68.                     ' do some thing '
  69.                     '---------------'
  70.                 Else
  71.  
  72.                     fileCount = fileCount + 1
  73.                     If Instr(Taptin, fileName)<>0 Then
  74.                          List1.AddItem sFolder & "\"& TapTin
  75.                     End If
  76.                 End If
  77.  
  78.             End If
  79.  
  80.             res = FindNextFile(hSearch, FileData)
  81.         Loop Until (res = 0)
  82.  
  83. 1:      FindClose (hSearch)
  84.  
  85.     Loop
  86. End Sub
Chán Win mới rồi. Trở lại WinXP thân iêu.

Happiness is not in money, but in it quantity
Hình đại diện của thành viên
gtdcomputer
Thành viên danh dự
Thành viên danh dự
 
Bài viết: 1225
Ngày tham gia: Thứ 6 18/07/2008 12:08 pm
Đến từ: Kiên Giang
Đã cảm ơn: 2 lần
Được cảm ơn: 96 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi khoabi » Thứ 2 24/08/2009 3:24 pm

Chân thành cám ơn bạn gtdcomputer.
Mình thử ko chạy được, bạn có thể gửi giúp mình Project được ko.
cám ơn bạn.
khoabi
Thành viên chính thức
Thành viên chính thức
 
Bài viết: 25
Ngày tham gia: Thứ 5 10/04/2008 8:09 am
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi gtdcomputer » Thứ 2 24/08/2009 4:04 pm

Srry tại mình chép thiếu ấy mừ :D
Thử nghiệm nè
Bạn không được cấp phép để xem tập tin đính kèm trong bài viết này.
Chán Win mới rồi. Trở lại WinXP thân iêu.

Happiness is not in money, but in it quantity
Hình đại diện của thành viên
gtdcomputer
Thành viên danh dự
Thành viên danh dự
 
Bài viết: 1225
Ngày tham gia: Thứ 6 18/07/2008 12:08 pm
Đến từ: Kiên Giang
Đã cảm ơn: 2 lần
Được cảm ơn: 96 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi khoabi » Thứ 2 24/08/2009 4:46 pm

Rất chân thành cám ơn bạn gtdcomputer đã nhiệt tình giúp mình.
Project của bạn mình chạy tốt.
Bạn cố gắng tranh thủ giúp mình thêm một bước nữa.
Mục đích của mình là: Mình có rất nhiều file dữ liệu được CT tạo ra có tên theo năm/tháng/ngày giờ/phút hệ thống (ví dụ 200908241549.grt) chứa trong nhiều thư mục con của thư mục mẹ (ví dụ D:\Data\2009).
Mình muốn CT tìm các file theo chủ định: ví dụ mình gõ vào Text1: 2009/07/17 00/00, gõ vào Text2: 2009/08/25 12/30, các file tìm được hiển thị trong ListBox như của bạn (chỉ thể hiện tên file, không hiển thị đường dẫn như của bạn), rồi copy vào thư mục nhất định, ví dụ D:\DataLuu\.
Như thế CT sẽ tìm tất cả các file.grt được tạo ra từ 00 giờ 00 phút ngày 17 tháng 07 năm 2009 đến 12 giờ 30 phút ngày 25 tháng 08 năm 2009
(Mình gửi kèm giao diện Vidu2).
Mong bạn cố gắng giúp mình. Một lần nữa, chân thành cám ơn bạn.
Bạn không được cấp phép để xem tập tin đính kèm trong bài viết này.
khoabi
Thành viên chính thức
Thành viên chính thức
 
Bài viết: 25
Ngày tham gia: Thứ 5 10/04/2008 8:09 am
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi gtdcomputer » Thứ 4 26/08/2009 7:29 am

Srry. Hủm rày bận bắn SA quá quên lên 4rum.
Mình đã làm theo ý bạn. Ý tưởng là dò từ năm bắt đầu đến năm kết thúc và so sánh tên hai tập tin đó có nằm trong khoản yêu cầu không rồi chép nó về thư mục yêu cầu
Bạn không được cấp phép để xem tập tin đính kèm trong bài viết này.
Chán Win mới rồi. Trở lại WinXP thân iêu.

Happiness is not in money, but in it quantity
Hình đại diện của thành viên
gtdcomputer
Thành viên danh dự
Thành viên danh dự
 
Bài viết: 1225
Ngày tham gia: Thứ 6 18/07/2008 12:08 pm
Đến từ: Kiên Giang
Đã cảm ơn: 2 lần
Được cảm ơn: 96 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi khoabi » Thứ 5 27/08/2009 4:50 pm

Rất chân thành cám ơn bạn gtdcomputer đã nhiệt tình giúp.
Project của bạn mình chạy tốt khi các file dữ liệu chứa trên D:\Data\"năm"\ (D:\Data\yyyy\)
Mình đã mày mò mãi trên Project của bạn với cách tổ chức thư mục như sau: D:\Data\"năm"\"tháng"\"ngày"\"giờphút"\ (D:\Data\yyyy\MM\dd\ggpp\ - Trong file mình gửi kèm sau đây) nhưng vẫn không chạy được.
Phiền bạn một lần nữa.
Cho mình gửi đến bạn một lời cám ơn chân thành nhất.
Bạn không được cấp phép để xem tập tin đính kèm trong bài viết này.
khoabi
Thành viên chính thức
Thành viên chính thức
 
Bài viết: 25
Ngày tham gia: Thứ 5 10/04/2008 8:09 am
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi gtdcomputer » Thứ 6 28/08/2009 10:48 am

Èo dzj tới 6MB thế. Để mình mò. Giờ ăn cơm cái đã. Chúc post trả lời cho :D
Chán Win mới rồi. Trở lại WinXP thân iêu.

Happiness is not in money, but in it quantity
Hình đại diện của thành viên
gtdcomputer
Thành viên danh dự
Thành viên danh dự
 
Bài viết: 1225
Ngày tham gia: Thứ 6 18/07/2008 12:08 pm
Đến từ: Kiên Giang
Đã cảm ơn: 2 lần
Được cảm ơn: 96 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi gtdcomputer » Thứ 2 31/08/2009 10:35 am

Thứ 6 chỗ mình mất điện rồi không làm được lun. Hom nay post bù. Tớ có ghi rõ chỗ tớ đã thay đổi trong lệnh Command1_Click. với lại cái hàm Walk rồi đó.
Bạn không được cấp phép để xem tập tin đính kèm trong bài viết này.
Chán Win mới rồi. Trở lại WinXP thân iêu.

Happiness is not in money, but in it quantity
Hình đại diện của thành viên
gtdcomputer
Thành viên danh dự
Thành viên danh dự
 
Bài viết: 1225
Ngày tham gia: Thứ 6 18/07/2008 12:08 pm
Đến từ: Kiên Giang
Đã cảm ơn: 2 lần
Được cảm ơn: 96 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi khoabi » Thứ 4 09/09/2009 10:03 am

Project của bạn mình chạy rất tốt. Chân thành cám ơn bạn rất nhiều vì đã nhiệt tình giúp mình.
khoabi
Thành viên chính thức
Thành viên chính thức
 
Bài viết: 25
Ngày tham gia: Thứ 5 10/04/2008 8:09 am
Đã cảm ơn: 0 lần
Được cảm ơn: 0 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi doicanhden » Thứ 7 19/09/2009 4:47 pm

có ai thử cái này chưa
Mã: Chọn tất cả
  1. Function GetFileName(attach_str As String) As String
  2. Dim s As Integer
  3. Dim temp As String
  4. s = InStr(1, attach_str, "\")
  5. temp = attach_str
  6. Do While s > 0
  7. temp = Mid(temp, s + 1, Len(temp))
  8. s = InStr(1, temp, "\")
  9. Loop
  10. GetFileName = temp
  11. End Function
  12.  

truyền tham số bằng cách
Mã: Chọn tất cả
  1.  
  2. dim name as string
  3. name=GetFileName("c:\text.txt")
  4.  
Câu Lạc Bộ VB
Hình đại diện của thành viên
doicanhden
Thành viên tích cực
Thành viên tích cực
 
Bài viết: 160
Ngày tham gia: Thứ 4 02/09/2009 4:29 pm
Đến từ: Tp.HCM
Đã cảm ơn: 7 lần
Được cảm ơn: 2 lần

Search & copy file trong vb6

Gửi bàigửi bởi bvchauthanh » Thứ 5 10/02/2011 10:51 am

Pro nào có thể trả lời câu hỏi này của mình không?
Mình muốn viết 1 chương trình tìm kiếm File (có điều kiện VD: *.doc hay *.mdb...) và copy sang chổ khác (USB chẳng hạn)
Nếu tìm thấy file thõa điều kiện (dạng *.doc hay *.mdb) thì chép sang USB hết, còn không thì hiện thông báo không tìm thấy file (dạng *.doc....)
Nếu được cho mình xin Project luôn với nhé, thanks 1000 lần
bvchauthanh
 
Bài viết: 7
Ngày tham gia: Thứ 7 21/11/2009 8:36 pm
Đã cảm ơn: 4 lần
Được cảm ơn: 0 lần

Re: VB6 - Lấy tên file trong đường dẫn cho trước

Gửi bàigửi bởi andylam1992 » Thứ 5 10/02/2011 5:15 pm

mờ đọc vblib, mục mẹo vặt- tìm kiếm file

不相信未作牺牲竟先可拥有
只相信是靠双手找到我欲求
Cần - Kiệm- Liêm(liêm kiết) - Nghĩa - Chí - Tín
Hình đại diện của thành viên
andylam1992
Thành viên danh dự
Thành viên danh dự
 
Bài viết: 380
Ngày tham gia: Thứ 2 06/04/2009 12:57 pm
Đến từ: TP.HCM Q5
Đã cảm ơn: 2 lần
Được cảm ơn: 4 lần


Quay về Visual Basic 6 và Visual Basic Script (VB & VBS)

Ai đang trực tuyến?

Đang xem chuyên mục này: Google [Bot]5 khách