2016-11-17 4 views
0

Привет Я пытаюсь скопировать файл из папки источника в целевую папку. Но при запуске я получаю сообщение об ошибке «Плохое имя или номер файла».Копирование файлов из исходной папки в целевую папку

Вот мой код:

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. –

+0

то как я могу это сделать? – Karl

+0

Это показывает вам, как взаимодействовать с веб-серверами на самом базовом уровне. Вы должны знать, что отправить сервер. Обычно это пост-команда. Вы можете получить Fiddler https://www.telerik.com/, который позволяет вам видеть, что отправляется. Вы можете использовать vbscript здесь, чтобы делать то, что делает браузер. http://stackoverflow.com/questions/40480969/how-to-read-the-content-of-a-website-using-batch-script –

ответ

0

В Windows Vista и более поздние версии, вы должны быть в состоянии map библиотек SharePoint, чтобы буквы дисков с помощью WebDAV, как описано в this blog post:

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

Затем скопируйте файлы на сетевом диске, используя FileSystemObject методы.

Смежные вопросы