2013-06-18 66 views
0

我有下面的代碼,它是從一個文件夾複製文件,並創建一個新的文件夾,如果不存在,然後粘貼在那裏的文件。我得到一個路徑找不到錯誤..意思是如果我想在c:\ versions \ myfolder中創建一個新文件夾,它不會創建路徑並引發錯誤。如果我在這裏做錯了任何事情。將文件夾複製到另一個路徑獲取錯誤

Dim LastMonth 
Dim strFolder 
Const strFile = "C:\inetpub\wwwroot\Shared" 
Const Overwrite = True 
Dim oFSO 

LastMonth = DateAdd("m",-1,Date) 

strFolder = "C:\Versions\" & "Common_" & Replace(LastMonth,"/","-")&"/" 
Set oFSO = CreateObject("Scripting.FileSystemObject") 

WScript.Echo strFolder 
If Not oFSO.FolderExists(strFolder) Then 
    oFSO.CreateFolder strFolder 
End If 

oFSO.CopyFolder strFile, strFolder, Overwrite 

爲了使問題易於理解我也試着這樣做oFSO.CreateFolder(「C:\ \版本共享」),但母鹿鼻涕工作。

+0

得到了這個博客http://www.robvanderwoude.com/vbstech_folders_md.php答案..basically你無法用於察覺直接創建一個以上的深層次文件夾 – user505210

回答

1
  • 您不能同時創建文件夾和子文件夾,在創建子文件夾之前父文件夾必須存在。
  • 您在文件夾名稱中輸入正斜槓(/),而不是strFolder路徑中的反斜槓(\)。 (錯字?)

希望幫助

+0

+1後斜線,雖然它不會阻止文件夾的創建。 'FileSystemObject'對待正向和反向斜線。 –

3

您可以創建文件夾,包括父文件夾通過遞歸遍歷向上的路徑,直到找到一個現有的父文件夾,然後創建子文件夾,你回來下降:

Set fso = CreateObject("Scripting.FileSystemObject") 

Sub CreateSubFolder(path) 
    If Not fso.FolderExists(path) Then 
    drive = fso.GetDriveName(path) 
    If Not fso.DriveExists(drive) Then 
     WScript.Echo "Drive " & drive & " doesn't exist." 
     WScript.Quit 1 
    End If 
    parent = fso.GetParentFolderName(path) 
    If Not fso.FolderExists(parent) Then CreateSubFolder parent 
    fso.CreateFolder path 
    End If 
End Sub 

CreateSubFolder "C:\path\to\some\distant\sub\folder" 
+0

不錯(+1),但'.DriveExists'應該應用於'.GetDriveName(path)'而不是'path'。 –

+0

確實應該。感謝您的支持。現在已經修復了。 –

相關問題