ASP如何检测某文件夹是否存在,不存在则自动创建

时间:2022-03-22 23:37:32

直接给大家分享一下服务器之家测试正常可以使用的代码,并且支持多级目录创建

代码一

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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

使用方法:

CreateMultiFolder("/202003/tools/")

代码二、测试ok

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
'自动创建多极目录
'code by jb51 reterry
function createit(path)
dim fsofo,cinfo,thepath,thepatharray
dim i,ii,binfo
binfo=false
thepath=path
set fsofo=createobject("scripting.filesystemobject")
if err then
err.clear
exit function
end if
thepath=replace(thepath,"\","/")
if left(thepath,1)="/" then
thepath=right(thepath,len(thepath)-1)
end if
if right(thepath,1)="/" then
thepath=left(thepath,len(thepath)-1)
end if
thepatharray=split(thepath,"/")
for i=0 to ubound(thepatharray)
createfoldersub1=createfoldersub1&thepatharray(i)&"/"
createfoldersub=server.mappath(createfoldersub1)
if not fsofo.folderexists(createfoldersub) then
fsofo.createfolder(createfoldersub)
end if
next
if err then
err.clear
else
binfo=true
end if
createit=binfo
end function

测试代码

createit("/202004/tools/")

以上代码如果无法运行,请检查iis运行用户的权限是否有写功能。今天测试的时候默认iis7.5下是无法运行的。

下面的实现代码功能性简单,适合学习

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
ASP如何检测某文件夹是否存在,不存在则自动创建
 
folder=server.mappath("/imagess"
Set fso = CreateObject("Scripting.FileSystemObject"
if fso.fileexists(Server.mappath(filepath)) then 
respnse.write("都有了还建什么建"
else 
fso.createfolder(folder) 
end if 
Set fso = nothing
 
Dim objFSO 
Set objFSO = Server.CreateObject("Scripting.FileSystemObject"
If objFSO.FolderExists(Server.MapPath(SavePath))=false Then
objFSO.CreateFolder(Server.MapPath(SavePath)) 
End If
 
folder=server.mappath("/imagess"
Set fso = CreateObject("Scripting.FileSystemObject"
if fso.fileexists(Server.mappath(filepath)) then 
respnse.write("都有了还建什么建"
else 
fso.createfolder(folder) 
end if 
Set fso = nothing  

都不完善,我想楼主的意思是创建无极深度目录吧,给个我写的: 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
'创建新文件夹(允许无级创建)1:35 2005-1-31
 
Public Function CreateFolder(FolderPath)
Dim sObjFSO
Dim arrFolder
Dim i
 
Set sObjFSO = Server.CreateObject("Scripting.FileSystemObject")
FolderPath = Replace(FolderPath,"\","/")
arrFolder = Split(FolderPath,"/")
On Error Resume Next
 
For i = 0 To UBound(arrFolder)
If i > 0 Then arrFolder(i) = arrFolder(i-1) & "/" & arrFolder(i)
If Not sObjFSO.FolderExists(arrFolder(i)) Then
sObjFSO.CreateFolder(arrFolder(i))
End If
Next
CreateFolder = True
 
If Err.number <> 0 Then
CreateFolder = False
Err.Clear
End If
End Function

创建文件夹

?
1
2
3
4
5
6
7
dim fso,SavePath
SavePath=server.MapPath(".\"&imagefile&"\"&username&"\"&specialname&"")
set fso = server.CreateObject("scripting.filesystemobject")
if fso.FolderExists(SavePath)=false then
fso.createfolder(SavePath)
end if
set fso=nothing

删除文件夹

?
1
2
3
4
5
6
7
dim fso,SavePath
SavePath=server.MapPath(".\"&imagefile&"\"&username&"\"&specialname&"")
set fso = server.CreateObject("scripting.filesystemobject")
if fso.FolderExists(SavePath)=true then
fso.deletefolder(SavePath)
end if
set fso=nothing

复制文件

?
1
2
3
4
5
6
7
8
9
10
11
dim fso
set fso=server.CreateObject("scripting.filesystemobject")
 
sub copyfiles(path,path2)
 set mycopy=fso.getfile(path)
 response.flush()
 mycopy.copy path2
 response.write("<b>installed success !&nbsp;&nbsp;</b>"&path2&"<br>")
 response.Flush()
 end sub
call copyfiles(Server.MapPath("../无标题2.bmp"),"D:\网站项目\photo\aspupload\07_images\")

下面是其他网友的补充

?
1
2
3
4
5
6
7
8
Public Function CheckAndCreateFolder(FolderName)
  fldr = Server.Mappath(FolderName)
  Set fso = CreateObject("Scripting.FileSystemObject")
  If Not fso.FolderExists(fldr) Then
   fso.CreateFolder(fldr)
  End If
  Set fso = Nothing
End Function

 检查文件夹是否存在,不存在则创建文件夹,该函数无返回值。

例:CheckAndCreateFolder("ASP")

检查当前目录下是否存在ASP文件夹,不存在则创建文件夹ASP ,缺点是不支持多级目录创建。

 asp关于fso函数,文件与文件夹的相关操作用得到

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
'//提供文件处理通用接口
Class FileSystemObject
'/*
' * 功能描述:删除文件
' * 输入参数:FileName——文件相对路径
'*/
Public Function DelFile(FileName)
 Dim getPath
 getPath="/"
 SET Fso=Server.CreateObject("Scripting.FileSystemObject")
 getPath=Replace(getPath&FileName,"//","/")
 if Fso.FileExists(Server.MapPath(getPath))=True then
   Fso.DeleteFile Server.mappath(getPath)
 End if
 Set Fso=Nothing
End Function
 
 
 
'/*
' * 功能描述:判断路径是否存在,如不存在则创建
' * 输入参数:SaveFilePath——相对路径,如:/UploadFiles/NewsFiles
'*/
Public Function CreatePath(SaveFilePath)
 Dim DeclarePath,FileObj,FilePath
 DeclarePath="/"
 
 Set FileObj=Server.CreateObject("Scripting.FileSystemObject")
 For Each FilePath in split(SaveFilePath,"/")
   DeclarePath=Replace(DeclarePath&FilePath&"/","//","/")
   if FileObj.FolderExists(Server.MapPath(DeclarePath))=false then
     FileObj.CreateFolder(Server.MapPath(DeclarePath))'创建文件夹
   end if
 Next
 Set FileObj=nothing
 CreatePath=DeclarePath
End Function
 
 
 
'/*
' * 功能描述:重命名文件夹
' * 输入参数:GetPath——文件夹路径
' * 输入参数:OldName——旧的文件夹名称
' * 输入参数:NewName——新的文件夹名称
'*/
Public Function RenFolder(GetPath,OldName,NewName)
 Dim Fso
 if OldName="" or NewName="" then
   exit Function
 else
   if OldName=NewName then exit Function
 end if
 SET Fso=Server.CreateObject("Scripting.FileSystemObject")
 if Fso.FolderExists(Server.MapPath(GetPath&NewName)) then
   response.write"<script language=javascript>alert('目录已经存在!!');this.history.go(-1);</script>"
   response.end()
 end if
 '//旧的文件夹不存在,则创建
 if Not Fso.FolderExists(Server.MapPath(GetPath&OldName)) Then
   CreatePath(GetPath&OldName)
 End if
 
 Fso.MoveFolder Server.MapPath(GetPath&OldName),Server.MapPath(GetPath&NewName)
 set Fso=nothing
 'response.redirect request.ServerVariables("HTTP_REFERER")
End Function
 
 
 
'/*
' * 功能描述:保存当前文件
' * 输入参数:GetPath——文件路径
' * 输入参数:GetContent——保存的内容
' * 输入参数:GetFile——保存的文件名
'*/
Public Function SaveEditFile(GetPath,GetContent,GetFile)
 if GetContent="" or GetFile="" then exit Function
 SET Fso=Server.CreateObject("Scripting.FileSystemObject")
 set CF=Fso.CreateTextFile(Server.mappath(GetPath&GetFile),true)
 CF.write GetContent
 CF.Close
 set CF=nothing
 set Fso=nothing
 'response.redirect request.ServerVariables("HTTP_REFERER")
End Function
 
End Class

以上就是ASP如何检测某文件夹是否存在,不存在则自动创建的详细内容,更多关于ASP如何检测某文件夹是否存在的资料请关注服务器之家其它相关文章!