将文件从源文件夹复制到目标文件夹

问题描述:

嗨我试图从源文件复制文件到目标文件夹。但是当我运行它时,我收到一个错误“错误的文件名或数字”。将文件从源文件夹复制到目标文件夹

这里是我的代码:

Option Explicit 
Dim srcFolder, trgFolder 

srcFolder = "\\sunpowercorp.com\spap\SPMM-QA\Public-Read_Write\SPMM QA Documents\Dominic Yumul\Toshiba Monthly Quality Report" 
trgFolder = "http:\\dms\departments\QUALITY\Quality Ops in the Box\Quality Ops in the Box library\025 SPMM QA Staff Documents\Toshiba Monthly Quality Report" 

CopyFilesAndFolders srcFolder, trgFolder 
WScript.Quit 

Sub CopyFilesAndFolders(ByVal strSource, ByVal strDestination) 
    Dim ObjFSO, ObjFolder, ObjSubFolder, ObjFile, files 
    Dim TargetPath 
    Set ObjFSO = CreateObject("scripting.filesystemobject") 
    'connecting to the folder where is going to be searched 
    Set ObjFolder = ObjFSO.GetFolder(strSource) 
    TargetPath = Replace (objFolder.path & "\", strSource, strDestination,1,-1,vbTextCompare) 
    If Not ObjFSO.FolderExists (TargetPath) Then ObjFSO.CreateFolder (TargetPath) 
    Err.clear 
    On Error Resume Next 
    'Check all files in a folder 
    For Each objFile In ObjFolder.files 
     If Err.Number <> 0 Then Exit For 'If no permission or no files in folder 
     On Error goto 0 
     If CheckToCopyFile (objFile.path, TargetPath & "\" & objFile.name) Then 
      objFSO.copyfile objFile.path, TargetPath & "\" & objFile.name, True 
     End If 
    Next 
    'Recurse through all of the subfolders 
    On Error Resume Next 
    Err.clear 
    For Each objSubFolder In ObjFolder.subFolders 
     If Err.Number <> 0 Then Exit For 'If no permission or no subfolder in folder 
     On Error goto 0 
     'For each found subfolder there will be searched for files 
     CopyFilesAndFolders ObjSubFolder.Path & "\", TargetPath & ObjSubFolder.name & "\" 
    Next 
    Set ObjFile = Nothing 
    Set ObjSubFolder = Nothing 
    Set ObjFolder = Nothing 
    Set ObjFSO = Nothing 
End Sub 

Function CheckToCopyFile(ByVal strSourceFilePath, ByVal strDestFilePath) 
    Dim oFSO, oFile, SourceFileModTime, DestFileModTime 
    CheckToCopyFile = True 
    Set oFSO = CreateObject("scripting.filesystemobject") 
    If Not oFSO.FileExists (strDestFilePath) Then Exit Function 
    Set oFile = oFSO.GetFile (strSourceFilePath) 
    SourceFileModTime = oFile.DateLastModified 
    Set oFile = Nothing 
    Set oFile = oFSO.GetFile (strDestFilePath) 
    DestFileModTime = oFile.DateLastModified 
    Set oFile = Nothing 
    If SourceFileModTime =< DestFileModTime Then CheckToCopyFile = False 
    Set oFSO = Nothing 
End Function 

我不知道是什么行,我得到的错误。

+1

您无法使用FSO将文件复制到Web服务器。 – 2016-11-17 07:12:27

+0

那我该怎么做? – Karl

+0

这将向您展示如何在最基本的Web服务器上进行交互。您需要知道要发送服务器的内容。它通常是一个post命令。你可以得到Fiddler https://www.telerik.com/,它可以让你看到正在发送的内容。您可以在这里使用vbscript来完成浏览器正在做的事情。 http://*.com/questions/40480969/how-to-read-the-content-of-a-website-using-batch-script – 2016-11-17 09:03:27

在Windows Vista和较新的,你应该能够map SharePoint库驱动使用WebDAV字母在this blog post描述:

Set net = CreateObject("WScript.Network") 
net.MapNetworkDrive "X:", "\\[email protected]\site\Shared Documents\" 

文件然后复制到使用FileSystemObject方法映射的驱动器。