Hiển thị kết quả từ 1 đến 2 / 2
  1. #1
    Tham gia
    16-08-2008
    Location
    Vĩnh Phúc
    Bài viết
    500
    Like
    1
    Thanked 4 Times in 3 Posts

    giúp mình code copy file với :(

    Code:
    Private Sub cmdbrowse_Click()
    Dim a
    Dim m
    'Xác ??nh th? m?c
    Set PathFolder = CreateObject("Shell.Application") _
    .BrowseForFolder(0, "Tim den thu muc :", 0)
    If Not PathFolder Is Nothing Then Txtpath.Text = PathFolder.Self.Path ' ??a ???ng d?n th? m?c vào textbox
    End Sub
    
    Private Sub Command1_Click()
    a = Txtpath.Text
    m = "\abc.exe" 
    FileCopy "a &\abc.exe", "D:\abc.exe"
    End Sub
    cả nhà cho mình hỏi cách copy file ở trên có đúng k? Nếu k hưỡng dần mình copy với. Yêu cầu đặt ra khi copy là đã có đường dẫn đến folder chứa file rồi bây giơ phải copy 1 file trong folder ấy đến một Folder xác định. Tớ tks cả nhà trc ạ
    Quote Quote

  2. #2
    Tham gia
    25-11-2007
    Location
    TP.HCM
    Bài viết
    100
    Like
    0
    Thanked 4 Times in 3 Posts
    khi bạn dùng hàm FileCopy, VB sẽ làm giúp bạn tất cả mọi thứ. Như vậy, bạn sẽ không kiểm soát dc quá trình copy. Nếu file có dung lượng lớn thì có thể treo máy. Để copy file hiệu quả, bạn nên copy theo block. Ta chia file cần copy ra thành từng khối nhỏ (block). Code mẫu :

    Code:
    'Nho Reference thu vien Scripting Runtime truoc
    'sSource la duong dan file nguon
    'sDestination la duong dan file dich
    public function CopyFile(byval sSource as string, byval sDestination as string)as boolean
    Dim lBlockSize as long,lTotal as long
    Dim fso as new FileSystemObject
    Dim Content() as byte 'mang byte chua noi dung file
    on error goto Cancel
    lBlockSize =524288 'VD lay size block là 512KB
    lTotal = fso.GetFile(sSource).Size
    open sSource for binary as #1
    open sDestination for binary as #2
    do while lTotal>0
       if lBlockSize>=lTotal then lBlockSize=lTotal
       redim Content(lBlockSize-1)
       get #1,,Content
       put #1,,Content
    loop
    Close
    CopyFile=True
    msgbox "Copy thanh cong"
    exit sub
    Cancel:
    msgbox "Loi copy file"
    end sub
    cơ bản là như vậy. bạn có thể phát triển thêm. Cái chỗ blocksize ko nhất thiết phải là 512KB. Bạn có thể viết một hàm lựa chọn blocksize sao cho phù hợp với từng kích cỡ file khác nhau.

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •