Sub MoveAFile(Drivespec)
   Dim fso
   Set fso = CreateObject("Scripting.FileSystemObject")
   fso.MoveFile Drivespec, "c:\windows\desktop\"
End Sub

解决方案 »

  1.   

    Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
    FileCopy "C:\1.txt", "D:\1.txt"
      

  2.   

    fso.MoveFile好象很不稳定,有的时候能成功,有的时候就没有做移动的操作.这是为什么?
      

  3.   

    你可以用MoveFile 方法来搞定!!!!
    将一个或多个文件从一个地方移动到另一个地方。语法object.MoveFile source, destination MoveFile 方法语法有如下几部分:部分 描述 
    Object 必需的。始终是一个 FileSystemObject 的名字。 
    Source 必需的。一个或多个要移动文件的路径。Source 参数字符串只能在路径的最后部件中包含通配符。 
    destination 必需的。一个或多个文件要移动到的目标路径。 Destination 参数不能包含通配符。 
    说明如果 source 包含通配符或 destination 以路径分隔符 (\) 为结尾,则认为 destination 指定了一个存在的文件夹,在此文件夹中移动相匹配的文件。否则,认为 destination 是一个要创建的目标文件名。在上面任一情况下,当移动一个文件时可能出现三种事件。 
    如果 destination 不存在,文件得到移动。这是通常的情况。
    如果 destination 是一个已存在文件,则发生一个错误。
    如果 destination 是一个目录,则发生一个错误。 
    如果一个在 source 中使用的通配符不能和任何一个文件匹配,也发生一个错误。 MoveFile 方法停止在它遇到的第一个错误上。不要尝试回卷错误发生前所做的任何改变。 
      

  4.   

    本例先在C盘的根目录下创建了一个文本文件,并向其中写入一些信息,然后将该文件移至一个名叫 \tmp 的目录,并复制到一个叫 \temp 的目录下,最后删掉该文件在这两个子目录下的拷贝。要运行本例,请先确认在C盘的根目录下已经存在名叫 \tmp 和 \temp 的目录。Sub Manip_Files()
        Dim fso as New FileSystemObject, txtfile, fil1, fil2
        Set txtfile = fso.CreateTextFile("c:\testfile.txt", True)
        MsgBox "写入文件"
        ' 写入一行。
        txtfile.Write ("这是一个测试例子。")
        ' 关闭要写入的文件。
        txtfile.Close
        MsgBox "移动文件到 c:\tmp"
        ' 获得C盘根目录下的一个文件句柄。
        Set fil1 = fso.GetFile("c:\testfile.txt")
        ' 将该文件移至 \tmp 目录下。
        fil1.Move ("c:\tmp\testfile.txt")
        MsgBox "复制文件到 c:\temp"
        ' 将该文件复制到 \temp 目录下。
        fil1.Copy ("c:\temp\testfile.txt")
        MsgBox "删除文件"
        ' 获得这些文件当前位置的句柄。
        Set fil1 = fso.GetFile("c:\tmp\testfile.txt")
        Set fil2 = fso.GetFile("c:\temp\testfile.txt")
        ' 删除这些文件。
        fil1.Delete
        fil2.Delete
    MsgBox "全部完成!"
      

  5.   

    用api
    FileCopy sourcefile, destfile
    defelete sourcefile
      

  6.   

    太多了
    其实我建议
    楼主,在问问题前,查一下MSDN多好呢?
    好象里面的东西更全
    还有例子
      

  7.   

    可以先复制再删除,下面是一段文件转移的代码
    Dim result As Long, fileop As SHFILEOPSTRUCT
    With fileop
            .hwnd = Me.hwnd
            .wFunc = FO_COPY
            .pFrom = "C:\PROGRAM FILES\MICROSOFT VISUAL BASIC\VB.HLP" & vbNullChar & "C:\PROGRAM FILES\MICROSOFT VISUAL BASIC\README.HLP" & vbNullChar & vbNullChar
           .pFrom = "C:\*.*" & vbNullChar & vbNullChar
            .pTo = "C:\testfolder" & vbNullChar & vbNullChar
            .fFlags = FOF_SIMPLEPROGRESS Or FOF_FILESONLY
    End With
    result = SHFileOperation(fileop)
    If result <> 0 Then
            ' Operation failed
            MsgBox Err.LastDllError
    Else
            If fileop.fAnyOperationsAborted <> 0 Then
                          MsgBox "Operation Failed"
             End If
    End If
      

  8.   

    filecopy and killor use APIPrivate 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 TypePrivate 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)