将文件夹复制到另一个路径获取错误

时间:2013-06-18 16:35:16

标签: vbscript

我有以下代码,它是从一个文件夹复制文件并创建一个新文件夹(如果不存在),然后粘贴那里的文件。我找到一个路径未找到错误。如果我想创建一个新的文件它在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”),但它会使鼻涕工作。

2 个答案:

答案 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)。 (错字?!)

希望有所帮助