我有以下代码,它是从一个文件夹复制文件并创建一个新文件夹(如果不存在),然后粘贴那里的文件。我找到一个路径未找到错误。如果我想创建一个新的文件它在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:\ Versions \ Shared”),但它会使鼻涕工作。
答案 0 :(得分: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"
答案 1 :(得分:1)
/
路径中的文件夹名称中放置了正斜杠(\
)而不是反斜杠(strFolder
)。 (错字?!)希望有所帮助