在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
FSO文件(File)对象属性 文件操作,取文件大小 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 ogeek 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 '目的檔案名 多個用"|"隔開? '注意:上面兩個參數請保持一致,文件路径为相对路径 '已經經過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(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 FSO文件操作函数代码(复制文件、重命名文件、删除文件、替换字符串)的文章就介绍到这了,更多相关FSO 文件操作内容请搜索极客世界以前的文章或继续浏览下面的相关文章希望大家以后多多支持极客世界! |
请发表评论