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

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

代码一

 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

'自动创建多极目录
'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下是无法运行的。

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

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: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

创建文件夹

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

删除文件夹

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

复制文件

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\")

下面是其他网友的补充

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函数,文件与文件夹的相关操作用得到

'//提供文件处理通用接口
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如何检测某文件夹是否存在的资料请关注我们其它相关文章!

(0)

相关推荐

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

    复制代码 代码如下: '==============================         '创建多级目录,可以创建不存在的根目录         '参数:要创建的目录名称,可以是多级         '创建目录的根目录从当前目录开始         '''调用举例         ''Call CreateMultiFolder("/upload/jumbot/myphoto/")         '============================== Functi

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

    直接给大家分享一下我们测试正常可以使用的代码,并且支持多级目录创建 代码一 Function CreateMultiFolder(ByVal CFolder) Dim objFSO, PhCreateFolder, CreateFolderArray, CreateFolder Dim i, ii, CreateFolderSub, PhCreateFolderSub, BlInfo BlInfo = False CreateFolder = CFolder On Error Resume Ne

  • asp.net 删除项目文件/文件夹IIS重启,Session丢失问题

    仔细一看,SSO返回的ticket也不相同,才发现原来IIS重启了,最后解决方案如下: 新建一个类继承IHttpModule 复制代码 代码如下: /// <summary> /// Stops the ASP.NET AppDomain being restarted (which clears /// Session state, Cache etc.) whenever a folder is deleted. /// </summary> public class Stop

  • asp遍历站点所有文件夹的代码

    <!-- 遍历站点所有文件夹 -->   <style>   <!--   body{font-size:12px;}   -->   </style>   <script language="vbscript">   <!--   sub fsubmit()   form1.submit   End sub   -->   </script>   <form name="form1&q

  • 用asp实现的获取文件夹中文件的个数的代码

    复制代码 代码如下: '返回指定文件夹中文件的数目,传入值为被检测文件夹的硬盘绝对路径 function CountFilesNumber(folderspec) Dim objfso,f,fc Set objfso=CreateObject("Scripting.FileSystemObject") Set f=objfso.GetFolder(folderspec) Set fc=f.Files CountFilesNumber=fc.Count set fc=nothing se

  • asp.net列出某文件夹下的所有文档,包括子目录下的档案

    复制代码 代码如下: protected void Page_Load(object sender, EventArgs e) { //指定目标文件夹 string directory = @"C:\Windows\Microsoft.NET\Framework\v3.5"; IterationFile(directory); } private void IterationFile(string path) { DirectoryInfo di = new DirectoryInfo

  • ASP FSO显示特殊文件夹的实现代码(畸形目录名、UNC路径)

    这个目前还是有个别无法显示,翻了下msdn貌似没看到更好的解决方案,暂时放弃继续研究,有晓得完全解决的朋友不妨回复说一声. 先附bat创建畸形目录,以下代码复制另存为a.bat: 复制代码 代码如下: md aux\\ md com1\\ md com2\\ md prn\\ md con\\ md nul\\ md dot...\\ md onedot..\\ 程序代码 复制代码 代码如下: <%@LANGUAGE="VBSCRIPT" CODEPAGE="65001

  • asp.net 获取指定文件夹下所有子目录及文件(树形)

    #region 获取指定文件夹下所有子目录及文件(树形)         /****************************************          * 函数名称:GetFoldAll(string Path)          * 功能说明:获取指定文件夹下所有子目录及文件(树形)          * 参    数:Path:详细路径          * 调用示列:          *           string strDirlist = Server.M

  • asp.net遍历目录文件夹和子目录所有文件

    复制代码 代码如下: using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Threading; namespace copefile {     class Program     {         static void Main(string[] args)         {             string testDir = "e:/xun

  • asp利用fso给文件夹和文件改名的代码

    <% Dim fso,f,folder     Set fso=Server.CreateObject("scripting.filesystemobject")     '改目录名     Set folder=fso.getfolder(Server.Mappath("Old"))     folder.name="New" '新名字 '改文件名     Set f=fso.getfile(Server.Mappath("Ol

  • ASP编程入门进阶(十七):FSO组件之文件夹操作

    操作完驱动器,接着就是来操作文件夹了.其中包括:提取文件夹信息.创建文件夹.删除文件夹.复制文件夹.移动文件夹等.下面就具体来看. 一.fso.GetFolder一看就明白,是提取文件夹了.那具体是提取哪个文件夹呢?后面肯定要跟一个文件夹的路径.提取出来了再来显示该文件夹相关信息呢?是不是有要具体提取下去.所以,看程序:1,getfldr.asp <%Set fso = CreateObject("Scripting.FileSystemObject")Set fldr = fs

随机推荐