如何实现删除文件时带进度条呀,在线等,分不够再加

解决方案 »

  1.   

    Windoes单个文件删除时不是也有进度条吗?
      

  2.   

    //Windoes单个文件删除时不是也有进度条吗?你注意看他的进度条
    只有删除前进度条空、删除前进度条满两种状态
      

  3.   

    删除1个与删除N个文件时使用进度条的操作是一样的,只是MAXVALUE一个是1一个是N。
      

  4.   

    删除文件时的进度条其实真的是一种障眼法,不像文件复制,可以根据大小计算进度,文件删除只是在FAT中作一个删除标志而已,速度很快,根本不必需要进度条的。(当然文件太多或粉碎文件除外)。
      

  5.   

    同意楼上的,删除文件是只是在目录表标记一下,速度很快.
    单如果是特殊需要的话:
    1.文件粉碎    可以计算文件总的大小,每粉碎一定大小,进度条增加一定百分比
    2.文件多      计算文件个数,障眼法.    引用zyl910(910:分儿,我又来了!)
      

  6.   

    '在窗体中增加一个progressbar
    '调用: CopyFile "E:\AVSEQ01.DAT", "E:\1\1.DAT"
    Public Function CopyFile(Src As String, Dst As String) As Single
       Dim BTest!, FSize!
       Dim F1%, F2%
       Dim sArray() As Byte
       Dim buff As Integer   Const BUFSIZE = 1024
       
       buff = 1024
       
       F1 = FreeFile
       Open Src For Binary As F1
       F2 = FreeFile
       Open Dst For Binary As F2
       
       FSize = LOF(F1)
       BTest = FSize - LOF(F2)
       ReDim sArray(BUFSIZE) As Byte
       
       Do
       If BTest < BUFSIZE Then
       buff = BTest
       ReDim sArray(buff) As Byte
       End If
       
       Get F1, , sArray
       Put F2, , sArray
       
       BTest = FSize - LOF(F2)
       If BTest < 0 Then
       ProgressBar.Value = 100 '这里是进度条代码
       Else
       ProgressBar.Value = (100 - Int(100 * BTest / FSize)) '这里是进度条代码
       End If
       Loop Until BTest <= 0
       
       Close F1
       Close F2
       CopyFile = FSize
       
    End Function
      

  7.   

    使用以下的 API , 得到与资源管理器相同的感觉!
    Private Type SHFILEOPSTRUCT 
    hwnd As Long 
    wFunc As Long
    pFrom As String 
    pTo As String 
    fFlags As Integer
    fAnyOperationsAborted As Long 
    hNameMappings As Long
    lpszProgressTitle As String '只有在 FOF_SIMPLEPROGRESS 时用
    End Type
    Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
    'wFunc 常数
    'FO_COPY 把 pFrom 文件拷贝到 pTo。
    Const FO_COPY = &H2
    'FO_DELETE 删除 pFrom 中的文件(pTo 忽略)。
    Const FO_DELETE = &H3
    'FO_MOVE 把 pFrom 文件移动到 pTo。
    Const FO_MOVE = &H1'fFlag 常数
    'FOF_ALLOWUNDO 允许 Undo 。
    Const FOF_ALLOWUNDO = &H40
    'FOF_NOCONFIRMATION 不显示系统确认对话框。
    Const FOF_NOCONFIRMATION = &H10
    'FOF_NOCONFIRMMKDIR 不提示是否新建目录。
    Const FOF_NOCONFIRMMKDIR = &H200
    'FOF_SILENT 不显示进度对话框
    Const FOF_SILENT = &H4
    例子:
    Dim SHFileOp As SHFILEOPSTRUCT
    ' 删除
    SHFileOp.wFunc = FO_DELETE 
    SHFileOp.pFrom = "c:\config.old" + Chr(0)
    SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
    Call SHFileOperation(SHFileOp)
    ' 删除多个文件
    SHFileOp.wFunc = FO_DELETE
    SHFileOp.pFrom = "c:\config.old" +Chr(0) + "c:\autoexec.old"+Chr(0)
    SHFileOp.fFlags = FOF_ALLOWUNDO
    Call SHFileOperation(SHFileOp)
    ' 拷贝
    SHFileOp.wFunc = FO_COPY 
    SHFileOp.pFrom = "c:\t\*.*"
    SHFileOp.pTo = "d:\t\*.*"
    SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR
    Call SHFileOperation(SHFileOp)
    ' 移动
    SHFileOp.wFunc = FO_MOVE 
    SHFileOp.pFrom = "c:\config.old" + Chr(0)
    SHFileOp.pTo = "d:\t"
    SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
    Call SHFileOperation(SHFileOp)