ASP FSO文件操作函数代码(复制文件、重命名文件、删除文件、替换字符串)
(编辑:jimmy 日期: 2024/11/27 浏览:3 次 )
FSO文件(File)对象属性
DateCreated 返回该文件夹的创建日期和时间
DateLastAccessed 返回最后一次访问该文件的日期和时间
DateLastModified 返回最后一次修改该文件的日期和时间
Drive 返回该文件所在的驱动器的Drive对象
Name 设定或返回文件的名字
ParentFolder 返回该文件的父文件夹的Folder对象
Path 返回文件的绝对路径,可使用长文件名
ShortName 返回DOS风格的8.3形式的文件名
ShortPath 返回DOS风格的8.3形式的文件绝对路径
Size 返回该文件的大小(字节)
Type 如果可能,返回一个文件类型的说明字符串
FSO文件(File)对象方法
FSO文件对象方法 用途
CopyFile 拷贝一个或者多个文件到新路径
CreateTextFile 创建文件并且返回一个TextStream对象
DeleteFile 删除一个文件
OpenTextFile 打开文件并且返回TextStream对象,以便读取或者追加
文件操作,取文件大小
Function GetFileSize(FileName) '//功能:取文件大小 '//形参:文件名 '//返回值:成功为文件大小,失败为-1 '// FPath=server.mappath("jinmozhe.rar") '本地文件地址 Set fso = CreateObject("scripting.FileSystemObject") Set f = fso.GetFile(FPath) size=f.size if len(size)>4 then response.write formatnumber(f.size/1024000,2)&"MB" else response.write formatnumber(f.size/1024,2)&"KB" end if
重命名文件:
Function reName(sourceName,destName) dim oFso,oFile set oFso=server.createobject("Scripting.FileSystemObject") set oFile=oFso.getFile(Server.mappath(sourceName)) oFile.Name=destName Set oFso=Nothing Set oFile=Nothing End Function
删除文件:
Function FSOdel(fileName) dim fso,f set fso = server.CreateObject("scripting.filesystemobject") f=server.MapPath(fileName) if fso.FileExists(f) then fso.DeleteFile f,true end if set f = nothing set fso = nothing End Function
替换文件中的字符串:
Function FSOreplace(fileName,Target,repString) Dim objFSO,objCountFile,FiletempData Set objFSO = Server.CreateObject("Scripting.FileSystemObject") Set objCountFile = objFSO.OpenTextFile(Server.MapPath(fileName),1,True) FiletempData = objCountFile.ReadAll objCountFile.Close FiletempData=Replace(FiletempData,Target,repString) Set objCountFile=objFSO.CreateTextFile(Server.MapPath(fileName),True) objCountFile.Write FiletempData objCountFile.Close Set objCountFile=Nothing Set objFSO = Nothing End Function
创建目录
<% '******************************************************* '函数名:CreateFolder(sPath) '作 用: 创建目录 '参 数:sPath : 创建的相对目录路径 '返回值:成功 true , 失败 false '******************************************************* 'response.Write createfolder("/dgsunshine/UploadFile/demo1/") Function CreateFolder(sPath) On Error Resume Next Dim Fso,Arrfolder,Folder,i,j If sPath="" then CreateFolder = False Exit Function End If If Left(sPath,1) = "/" Then Folder = "/" sPath = Mid(sPath,2,Len(sPath)) Else Folder = "./" End If if Right(sPath,1) = "/" then sPath = Left(sPath,Len(sPath)-1) ArrFolder = Split(sPath,"/") Set Fso = Server.CreateObject("Scripting.FileSystemObject") For i = 0 To Ubound(ArrFolder) If i = 0 then Folder = Folder & ArrFolder(i) & "/" Else Folder = Folder & ArrFolder(i) & "/" End If If Fso.folderExists(Server.MapPath(Folder)) = False then response.Write server.MapPath(folder) Fso.createFolder(Server.MapPath(Folder)) End If Next Set Fso = nothing If Err.Number <> 0 then Err.clear() CreateFolder = False Else CreateFolder = True End If End function
创建目录再给两个函数
<% 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 '自动创建多极目录 '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/") %>
读取文件内容
Function getFile(paramFilePath) Set Fso = Server.CreateObject("Scripting.FileSystemObject") Set Fso_Read = fso.OpenTextFile(Server.MapPath(paramFilePath),1,false,-2) getFile = Fso_Read.readall Set Fso_Read = Nothing Set Fso = Nothing End Function
创建文件
'******************************************************* '函数名:CreateFile(paramFileContent,paramFilePath) '作 用: 创建文件 '参 数:paramFileContent '文件的内容 ' paramFilePath '文件名(不包括路径) '返回值:成功 true , 失败 false '******************************************************* Function CreateFile(paramFileContent,paramFilePath) On Error Resume Next Dim Fso,fWrite Set Fso = Server.CreateObject("Scripting.FileSystemObject") Set fWrite = Fso.CreateTextFile(Server.Mappath(paramFilePath),true) fWrite.write paramFileContent fWrite.close() Set fWrite = nothing Set Fso = nothing If Err.number <> 0 Then Err.clear() CreateFile = False Else CreateFile = True End If End Function
删除文件 支持多文件
'******************************************************* '函数名:DelFile(FilePath) '作 用: 删除文件 '参 数:FilePath '文件路径 多个文件用"|"隔开 '返回值:成功 true , 失败 false '******************************************************* Function DelFile(FilePath) On Error Resume Next Dim fso,arrFile,i If GetSafeStr(FilePath,"")="" then CreateFolder = false Exit Function End If arrFile = Split(FilePath,"|") Set Fso = Server.CreateObject("Scripting.FileSystemObject") for i=0 to UBound(arrFile) FilePath = arrFile(i) If Fso.FileExists(Server.MapPath(FilePath)) then Fso.DeleteFile Server.MapPath(FilePath) End If Next Set fso = nothing If Err then Err.clear() DelFile = false Else DelFile = true End If End Function
删除目录
'******************************************************* '函数名:DelFolder(FolderPath) '作 用: 删除目录 '参 数:FolderPath '目录路径 '多个目录用"|"分隔 '返回值:成功 true , 失败 false '******************************************************* Function DelFolder(FolderPath) On Error Resume Next Dim Fso,arrFolder,i If GetSafeStr(FolderPath,"")="" then DelFolder = false Exit Function End If arrFolder = Split(FolderPath,"|") Set Fso = Server.CreateObject("Scripting.FileSystemObject") For i=0 to UBound(arrFolder) FolderPath = arrFolder(i) If Fso.folderexists(Server.MapPath(FolderPath)) then Fso.deleteFolder Server.MapPath(FolderPath) End If Next If Err then Err.clear() DelFolder = false 'ShowError "删除目录失败","" else DelFolder = true End If End Function
为了方便,还是下面都一起把大家根据需要复制即可
'******************************************************* '函数名:IsExistFile(FilePath) '作 用: 判断文件或目录是否存在 '参 数:FilePath '文件路径 多个文件用"|"隔开 '返回值:成功 true , 失败 false '******************************************************* Function IsExistFile(FilePath) On Error Resume Next Dim fso,arrFile,i If GetSafeStr(FilePath,"")="" then IsExistFile = false End If arrFile = Split(FilePath,"|") Set Fso = Server.CreateObject("Scripting.FileSystemObject") for i=0 to UBound(arrFile) FilePath = arrFile(i) If Fso.FileExists(Server.MapPath(FilePath)) then IsExistFile = True End If If Fso.folderexists(Server.MapPath(FilePath)) then IsExistFile = True End If Next Set fso = nothing If Err then Err.clear() IsExistFile = false 'ShowError "判断文件或目录是否存在失败","" else IsExistFile = true End If End Function '******************************************************* '函数名:DelFile(FilePath) '作 用: 删除文件或目录 '参 数:FilePath '文件路径 多个文件用"|"隔开 '返回值:成功 true , 失败 false '******************************************************* Function DelFile(FilePath) On Error Resume Next Dim fso,arrFile,i If GetSafeStr(FilePath,"")="" then CreateFolder = false End If arrFile = Split(FilePath,"|") Set Fso = Server.CreateObject("Scripting.FileSystemObject") for i=0 to UBound(arrFile) FilePath = arrFile(i) If Fso.FileExists(Server.MapPath(FilePath)) then Fso.DeleteFile Server.MapPath(FilePath) End If If Fso.folderexists(Server.MapPath(FilePath)) then Fso.deleteFolder Server.MapPath(FilePath) End If Next Set fso = nothing If Err then Err.clear() DelFile = false 'ShowError "删除文件或目录失败","" else DelFile = true End If End Function '******************************************************* '函数名:ReNameFile((oldName,newName) '作 用: 重命名文件或目录 '参 数:strOldName '原文件名 多个用"|"隔开 ' strNewName '新文件名 多个用"|"隔开 ' 上面两个参数请保持一致 '返回值:成功 true , 失败 false '******************************************************* Function ReNameFile(strOldName,strNewName) On Error Resume Next Dim fso,arrOld,arrNew,i,oldName,newName old = GetSafeStr(strOldName,"") Newfile = GetSafeStr(strNewName,"") If old ="" or Newfile = "" then ReNameFile = false Exit Function End If arrOld = Split(strOldName,"|") arrNew = Split(strNewName,"|") If UBound(arrOld)<> UBound(arrNew) then ReNameFile = false Exit Function End If Set Fso = Server.CreateObject("Scripting.FileSystemObject") for i=0 to UBound(arrOld) oldName = Server.MapPath(arrOld(i)) newName = Server.MapPath(arrNew(i)) If Fso.FileExists(oldName) and not Fso.FileExists(newName) then fso.MoveFile oldName,newName 'ReNameFile = True End If Next Set fso = nothing If Err.Number <> 0 Then Err.clear() ReNameFile = false Else ReNameFile = True End If End Function '******************************************************* '函数名:CopyFiles((TempSource,TempEnd) '作 用: 复制文件或者目录 '参 数:TempSource '源文件名 多个用"|"隔开 ' TempEnd '目的文件名 多个用"|"隔开 ' 注意:上面两个参数请保持一致,并且都为完整路径, ' 已经经过Server.MapPath方法处理过 '返回值:成功 true , 失败 false '******************************************************* Function CopyFiles(TempSource,TempEnd) On Error Resume Next Dim CopyFSO,arrSource,arrEnd CopyFiles = false Set CopyFSO = Server.CreateObject("Scripting.FileSystemObject") If TempSource ="" or TempEnd = "" then ErrRaise "复制文件或目录","条件为空" CopyFiles = false Exit Function End If arrSource = Split(TempSource,"|") arrEnd = Split(TempEnd,"|") If UBound(arrSource) <> UBound(arrEnd) then CopyFiles= false Exit Function End If for i=0 to UBound(arrSource) srcName = arrSource(i) tarName = arrEnd(i) IF CopyFSO.FileExists(srcName) and not CopyFSO.FileExists(tarName) then CopyFSO.CopyFile srcName,tarName CopyFiles = true End If IF CopyFSO.FolderExists(srcName) and not CopyFSO.FolderExists(tarName)then CopyFSO.CopyFolder srcName,tarName CopyFiles = true End If Next Set CopyFSO = Nothing If Err then 'Err.clear() CopyFiles = false End If End Function %>
接着分享几个
<% Server.execute("redirect.asp") username=session("username") Dim SourceFile,TargetFile SourceFile = "test\xx.txt" TargetFile = "test\xx" TargetFile = TargetFile & "_" & username & ".txt" ' 文件已存在則先刪除 If IsExistFile(TargetFile) then call DelFile(TargetFile) End If ' 複製文件 call CopyFiles(SourceFile,TargetFile) '******************************************************* '函數名:CopyFiles((TempSource,TempEnd) '作 用:複製檔或者目錄 '參 數:TempSource '原始檔案名 多個用"|"隔開 ' TempEnd '目的檔案名 多個用"|"隔開"Scripting.FileSystemObject") If TempSource ="" or TempEnd = "" then ErrRaise "複製文件或目錄","條件為空" CopyFiles = false Exit Function End If arrSource = Split(TempSource,"|") arrEnd = Split(TempEnd,"|") If UBound(arrSource) <> UBound(arrEnd) then CopyFiles= false Exit Function End If for i=0 to UBound(arrSource) srcName = arrSource(i) tarName = arrEnd(i) IF CopyFSO.FileExists(Server.MapPath(srcName)) and not CopyFSO.FileExists(Server.MapPath(tarName)) then CopyFSO.CopyFile Server.MapPath(srcName),Server.MapPath(tarName) CopyFiles = true End If IF CopyFSO.FolderExists(Server.MapPath(srcName)) and not CopyFSO.FolderExists(Server.MapPath(tarName))then CopyFSO.CopyFolder Server.MapPath(srcName),Server.MapPath(tarName) CopyFiles = true End If Next Set CopyFSO = Nothing If Err then 'Err.clear() CopyFiles = false End If End Function '******************************************************* '函數名:IsExistFile(FilePath) '作 用: 判斷文件或目錄是否存在 '參 數:FilePath '檔路徑 多個檔用"|"隔開 '返回值:成功 true , 失敗 false '******************************************************* Function IsExistFile(FilePath) On Error Resume Next Dim fso,arrFile,i If FilePath="" then IsExistFile = false End If arrFile = Split(FilePath,"|") Set Fso = Server.CreateObject("Scripting.FileSystemObject") for i=0 to UBound(arrFile) FilePath = arrFile(i) If Fso.FileExists(Server.MapPath(FilePath)) then IsExistFile = True End If If Fso.folderexists(Server.MapPath(FilePath)) then IsExistFile = True End If Next Set fso = nothing If Err then Err.clear() IsExistFile = false 'ShowError "判斷文件或目錄是否存在失敗","" else IsExistFile = true End If End Function '******************************************************* '函數名:DelFile(FilePath) '作 用: 刪除檔或目錄 '參 數:FilePath '檔路徑 多個檔用"|"隔開 '返回值:成功 true , 失敗 false '******************************************************* Function DelFile(FilePath) On Error Resume Next Dim Fso,arrFile,i If FilePath="" then CreateFolder = false End If arrFile = Split(FilePath,"|") Set Fso = Server.CreateObject("Scripting.FileSystemObject") for i=0 to UBound(arrFile) FilePath = arrFile(i) If Fso.FileExists(Server.MapPath(FilePath)) then Fso.DeleteFile(Server.MapPath(FilePath)) End If If Fso.folderexists(Server.MapPath(FilePath)) then Fso.deleteFolder(Server.MapPath(FilePath)) End If Next Set Fso = nothing If Err then Err.clear() DelFile = false 'ShowError "刪除文件或目錄失敗","" else DelFile = true End If End Function %>
下一篇:ASP页面静态化批量生成代码分享(多种方法)