2016-11-17 5 views
0

Hallo Ich versuche, eine Datei aus dem Quellordner in den Zielordner zu kopieren. Aber ich bekomme einen Fehler "Bad File name or number" wenn ich es ausführe.Kopieren von Dateien aus dem Quellordner in den Zielordner

Hier ist mein Code:

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 

Ich weiß nicht, welche Linie ich die Störung erhalten.

+1

Sie können keine Dateien mit FSO auf einen Webserver kopieren. –

+0

dann wie kann ich das tun? – Karl

+0

Hier erfahren Sie, wie Sie mit den Webservern am grundlegendsten interagieren können. Sie müssen wissen, was Sie dem Server senden sollen. Es ist normalerweise ein Post-Befehl. Sie können Fiddler https://www.telerik.com/ erhalten, mit dem Sie sehen können, was gesendet wird. Sie können hier VBScript verwenden, um das zu tun, was der Browser tut. http://stackoverflow.com/questions/40480969/how-to-read-the-content-of-a-website-using-batch-script –

Antwort

0

Unter Windows Vista und neuere Sie sollten map Sharepoint-Bibliotheken können Buchstaben, wie beschrieben in this blog post mit WebDAV fahren:

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

Kopieren Sie dann auf dem zugeordneten Laufwerk Ihre Dateien mit FileSystemObject Methoden.

Verwandte Themen