asp中创建多级目录的两段代码

复制代码 代码如下:

  '==============================

  '创建多级目录,可以创建不存在的根目录

  '参数:要创建的目录名称,可以是多级

  '创建目录的根目录从当前目录开始

  '''调用举例

  ''Call CreateMultiFolder("/upload/jumbot/myphoto/")

  '==============================

  Function CreateMultiFolder(ByVal CFolder)

  Dim objFSO, PhCreateFolder, CreateFolderArray, CreateFolder

  Dim i, ii, CreateFolderSub, PhCreateFolderSub, BlInfo

  BlInfo = False

  CreateFolder = CFolder

  On Error Resume Next

  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

  If Err Then

  Err.Clear()

  Exit Function

  End If

  If Right(CreateFolder, 1) = "/" Then

  CreateFolder = Left(CreateFolder, Len(CreateFolder) -1)

  End If

  CreateFolderArray = Split(CreateFolder, "/")

  For i = 0 To UBound(CreateFolderArray)

  CreateFolderSub = ""

  For ii = 0 To i

  CreateFolderSub = CreateFolderSub & CreateFolderArray(ii) & "/"

  Next

  PhCreateFolderSub = Server.MapPath(CreateFolderSub)

  If Not objFSO.FolderExists(PhCreateFolderSub) Then

  objFSO.CreateFolder(PhCreateFolderSub)

  End If

  Next

  If Err Then

  Err.Clear()

  Else

  BlInfo = True

  End If

  CreateMultiFolder = BlInfo

  End Function

  上面的是循环

  下面的是正则

  

复制代码 代码如下:

  '==============================

  ''创建文件目录(多层)

  ''使用正则

  '==============================

  Function Create_N_Folder(save, ByVal Path)

  Dim Fso

  Set Fso = Server.CreateObject("Scripting.FileSystemObject")

  If Not Fso.FolderExists(Path) Then

  Dim regEx

  Set regEx = New RegExp

  regEx.Pattern = "^(.*)\\([^\\]*)$"

  regEx.Global = False

  regEx.IgnoreCase = True

  save = save & regEx.Replace(Path, "$2") & "|"

  Path = regEx.Replace(Path, "$1")

  If Create_N_Folder(save, Path) Then Create_N_Folder = True

  Set regEx = Nothing

  Else

  If save = "|" Then

  Create_N_Folder = True

  Else

  Dim Temp

  Temp = Mid(save, 2, Len(save) - 2)

  If InStrRev(Temp, "|") = 0 Then

  save = "|"

  Path = Path & "\" & Temp

  Else

  Dim Folder

  Folder = Mid(Temp, InStrRev(Temp, "|") + 1)

  save = "|" & Mid(Temp, 1, InStrRev(Temp, "|") - 1) & "|"

  Path = Path & "\" & Folder

  End If

  Fso.CreateFolder Path

  If Create_N_Folder(save, Path) Then Create_N_Folder = True

  End If

  End If

  Set Fso = Nothing

  End Function