有哪位仁兄可以告诉我拷贝一个完整的文件夹目录的api函数是哪个?

解决方案 »

  1.   

    怎么没有人回应我啊!没有人知道拷贝文件夹及其内容的win api函数吗?
      

  2.   

    干嘛非要用API呀,,
    用fso不可以吗??
      

  3.   

    Private Type SHFILEOPSTRUCT
        hWnd As Long
        wFunc As Long
        pFrom As String
        pTo As String
        fFlags As Integer
        fAborted As Boolean
        hNameMaps As Long
        sProgress As String
    End Type
    Private Const FO_COPY = &H2&
    Private Const FOF_RENAMEONCOLLISION = &H8&
    Private Const FOF_NOCONFIRMATION = &H10&
    Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
    Private Sub Form_Load()
        Dim SHFileOp As SHFILEOPSTRUCT
        With SHFileOp
            .wFunc = FO_COPY
            .pFrom = "d:\aa\*.*"        '源目录
            .pTo = "d:\tmp"             '目的
            .fFlags = FOF_NOCONFIRMATION Or FOF_RENAMEONCOLLISION
        End With
        SHFileOperation SHFileOp
    End Sub
      

  4.   

    你可以使用API函数SHFileOperation,这个函数可以同时拷贝、删除、改名或移动多个文件,甚至整个目录。如果你愿意,还可以显示相应的动画对话框,功能十分强大。SHFileOperation的参数是一个SHFILEOPSSTRUCT结构。这个结构中各成员的含义如下: 
         - hwnd - 显示文件操作对话框的窗口句柄 
         - wFunc - 表示要进行的操作,可以取以下值: 
         - FO_COPY - 拷贝文件。所要拷贝的文件由pFrom成员指定,目的地址有pTo成员指定。 
         - FO_DELETE - 删除pFrom指定的文件。(pTo 被忽略。) 
         - FO_MOVE - 移动文件。所要移动的文件由pFrom成员指定,目的地址有pTo成员指定。 
         - FO_RENAME - 改名pFrom指定的文件。 
         - pFrom - 指定文件名的缓冲区的地址。必须以Chr(0)结尾。如果包括多个文件以Chr(0)分割。 
         - pTo - 指定目的文件名或目录的缓冲区的地址。必须以Chr(0)结尾。如果使用了FOF_MULTIDESTFILES标志,可以包括多个文件名,文件名之间以Chr(0)分割。 
         - fFlags - 标志: 
         - FOF_ALLOWUNDO - 允许恢复 
         - FOF_FILESONLY - 如果使用了*.*,只操作文件。 
         - FOF_MULTIDESTFILES - pTo成员可以为多个目的文件。 
         - FOF_NOCONFIRMATION - 不显示确认对话框。 
         - FOF_NOCONFIRMMKDIR - 不确认是否建立目录。 
         - FOF_NOERRORUI - 如果有错误,不显示用户界面。 
         - FOF_RENAMEONCOLLISION - 如果目的文件已经存在,给要处理的文件一个新名字。 
         - FOF_SILENT - 不显示进度对话框。 
         - FOF_SIMPLEPROGRESS - 显示进度框,但不显示文件名。 
         - fAnyOperationsAborted -如果用户退出,该成员为TRUE,否则为FALSE。 
         - lpszProgressTitle - 进度框的标题,只有选择了FOF_SIMPLEPROGRESS标志才有效。 
      

  5.   

    谢谢了!我不是在VB中调用,而是在Lotus script中调用API,我曾经试过上面的函数,但是没有成功;我再试试吧!