ASP中常用的22个FSO文件操作函数整理
在asp中,fso的意思是file system object,即文件系统对象。我们将要操纵的计算机文件系统,在这里是指位于web服务器之上。所以,确认你对此拥有合适的权限。理想情况下,你可以在自己的机器上建立一个web服务器,这样就能方便地进行测试。如果运行于windows平台,请试一试微软公司的web服务器iis。
fso 模型对象
drive object:驱动器对象 供存取磁盘或者网络驱动器
filesystemobject object:文件系统对象 供存取计算机的文件系统
folder object:文件夹对象 供存取文件夹的所有属性
textstream object:文本流对象 供存取文件内容
你可以使用上面的对象做计算机上的任何事情,也包括破坏活动 ;-( 所以,请小心使用fso。在web环境中,存储信息是非常重要的,比如用户信息,日志文件,等等。fso提供了一个强大且简单的方法高效率地保存数据。fso由微软公司提供支持,对于非windows系统,大概不能再使用asp。
1.文件操作,取文件大小
function getfilesize(filename) '//功能:取文件大小 '//形参:文件名 '//返回值:成功为文件大小,失败为-1 '// dim f if reportfilestatus(filename) = 1 then set f = fso.getfile(filename) getfilesize = f.size else getfilesize = -1 end if end function
2.使用fso删除指定文件
function deleteafile(filespec) '//功能:文件删除 '//形参:文件名 '//返回值:成功为1,失败为-1 '// if reportfilestatus(filespec) = 1 then fso.deletefile(filespec) deleteafile = 1 else deleteafile = -1 end if end function
3.fso显示指定目录下的所有文件
function showfilelist(folderspec) '//功能:目录存在时显示此目录下的所有文件 '//形参:目录名 '//返回值:成功为文件列表,失败为-1 '// dim f, f1, fc, s if reportfolderstatus(folderspec) = 1 then set f = fso.getfolder(folderspec) set fc = f.files for each f1 in fc s = s & f1.name s = s & "|" next showfilelist = s else showfilelist = -1 end if end function
4.使用fso复制指定文件
function copyafile(sourcefile,destinationfile) '//功能:源文件存在时,才能对文件进行复制,目的文件无影响 '//形参:源文件,目的文件 '//返回值:成功为1,失败为-1 '// dim myfile if reportfilestatus(sourcefile) = 1 then set myfile = fso.getfile(sourcefile) myfile.copy (destinationfile) copyafile = 1 else copyafile = -1 end if end function
5.源文件存在时目的文件不存在时才能对文件进行移动
'response.write moveafile("f:\123\4561.exe","f:\123\4562.txt") function moveafile(sourcefile,destinationfile) '//形参:源文件,目的文件 '//返回值:成功为1,失败为-1 '// if reportfilestatus(sourcefile)=1 and reportfilestatus(destinationfileorpath) =-1 then fso.movefile sourcefile,destinationfileorpath moveafile = 1 else moveafile = -1 end if end function
6.fso判断指定文件是否存在?
function reportfilestatus(filename) '//功能:判断文件是否存在 '//形参:文件名 '//返回值:成功为1,失败为-1 '// dim msg msg = -1 if (fso.fileexists(filename)) then msg = 1 else msg = -1 end if reportfilestatus = msg end function
7.fso读取文件创建日期
function showdatecreated(filespec) '//功能:文件创建日期 '//形参:文件名 '//返回值:成功:文件创建日期,失败:-1 '// dim f if reportfilestatus(filespec) = 1 then set f = fso.getfile(filespec) showdatecreated = f.datecreated else showdatecreated = -1 end if end function
8.fso显示文件读写权限属性
function getattributes(filename) '//功能:显示文件属性 '//形参:文件名 '//返回值:成功:文件属性,失败:-1 '// dim f,str if reportfilestatus(filename) = 1 then set f = fso.getfile(filename) select case f.attributes case 0 str="普通文件。没有设置任何属性。 " case 1 str="只读文件。可读写。 " case 2 str="隐藏文件。可读写。 " case 4 str="系统文件。可读写。 " case 16 str="文件夹或目录。只读。 " case 32 str="上次备份后已更改的文件。可读写。 " case 1024 str="链接或快捷方式。只读。 " case 2048 str=" 压缩文件。只读。" end select getattributes = str else getattributes = -1 end if end function
9.fso显示指定文件最后一次访问/最后一次修改时间
'response.write showfileaccessinfo("文件路径") function showfileaccessinfo(filename,infotype) '//功能:显示文件创建时信息 '//形参:文件名,信息类别 '// 1 -----创建时间 '// 2 -----上次访问时间 '// 3 -----上次修改时间 '// 4 -----文件路径 '// 5 -----文件名称 '// 6 -----文件类型 '// 7 -----文件大小 '// 8 -----父目录 '// 9 -----根目录 '//返回值:成功为文件创建时信息,失败:-1 '// dim f, s if reportfilestatus(filename) = 1 then set f = fso.getfile(filename) select case infotype case 1 s = f.datecreated '// 1 -----创建时间 case 2 s = f.datelastaccessed '// 2 -----上次访问时间 case 3 s = f.datelastmodified '// 3 -----上次修改时间 case 4 s = f.path '// 4-----文件路径 case 5 s = f.name '// 5 -----文件名称 case 6 s = f.type '// 6-----文件类型 case 7 s = f.size '// 7-----文件大小 case 8 s = f.parentfolder '// 8 -----父目录 case 9 s = f.rootfolder '// 8 -----根目录 end select showfileaccessinfo = s else showfileaccessinfo = -1 end if end function
10.fso写指定内容到文本文件
function writetxtfile(filename,textstr,writeorappendtype) const forreading = 1, forwriting = 2 , forappending = 8 dim f, m select case writeorappendtype case 1: '文件进行写操作 set f = fso.opentextfile(filename, forwriting, true) f.write textstr f.close if reportfilestatus(filename) = 1 then writetxtfile = 1 else writetxtfile = -1 end if case 2: '文件末尾进行写操作 if reportfilestatus(filename) = 1 then set f = fso.opentextfile(filename, forappending) f.write textstr f.close writetxtfile = 1 else writetxtfile = -1 end if end select end function
11.利用fso读取文本文件内容
function readtxtfile(filename) const forreading = 1, forwriting = 2 dim f, m if reportfilestatus(filename) = 1 then set f = fso.opentextfile(filename, forreading) m = f.readline 'm = f.readall 'f.skipline readtxtfile = m f.close else readtxtfile = -1 end if end function
12.fso返回文件夹目录空间大小
function getfoldersize(foldername) '//功能:取目录大小 '//形参:目录名 '//返回值:成功为目录大小,失败为-1 '// dim f if reportfolderstatus(foldername) = 1 then set f = fso.getfolder(foldername) getfoldersize = f.size else getfoldersize = -1 end if end function
13.使用fso创建文件夹
function createfolderdemo(foldername) '//功能:创建的文件夹 '//形参:目录名 '//返回值:成功为1,失败为-1 '// dim f if reportfolderstatus(folderspec) = 1 then createfolderdemo = -1 else set f = fso.createfolder(foldername) createfolderdemo = 1 end if end function
14.fso删除指定文件夹目录
function deleteafolder(folderspec) '//功能:目录删除 '//形参:目录名 '//返回值:成功为1,失败为-1 '// response.write folderspec if reportfolderstatus(folderspec) = 1 then fso.deletefolder (folderspec) deleteafolder = 1 else deleteafolder = -1 end if end function
15.fso显示指定目录的文件夹目录列表
function showfolderlist(folderspec) '//功能:目录存在时显示此目录下的所有子目录 '//形参:目录名 '//返回值:成功为子目录列表,失败为-1 '// dim f, f1, fc, s if reportfolderstatus(folderspec) = 1 then set f = fso.getfolder(folderspec) set fc = f.subfolders for each f1 in fc s = s & f1.name s = s & "|" next showfolderlist = s else showfolderlist = -1 end if end function
16.fso复制指定文件夹目录
function copyafolder(sourcefolder,destinationfolder) '//功能:源目录存在时,才能对目录进行复制,目的目录无影响 '//形参:源目录,目的目录 '//返回值:成功为1,失败为-1 '// dim myfolder if reportfolderstatus(sourcefolder) = 1 and reportfolderstatus(destinationfolder) = -1 then set myfolder = fso.getfolder(sourcefolder) fso.copyfolder sourcefolder,destinationfolder copyafolder = 1 else copyafolder = -1 end if end function
17.移动指定文件夹目录
function moveafolder(sourcepath,destinationpath) '//功能:源目录存在时目的目录不存在时才能对目录进行移动 '//形参:源目录,目的目录 '//返回值:成功为1,失败为-1 '// if reportfolderstatus(sourcepath)=1 and reportfolderstatus(destinationpath)=0 then fso.movefolder sourcepath, destinationpath moveafolder = 1 else moveafolder = -1 end if end function
18.判断某目录是否存在
'response.write reportfolderstatus("g:\soft\delphi\my_pro\") function reportfolderstatus(fldr) '//功能:判断目录是否存在 '//形参:目录 '//返回值:成功为1,失败为-1 '// dim msg msg = -1 if (fso.folderexists(fldr)) then msg = 1 else msg = -1 end if reportfolderstatus = msg end function
19.显示目录创建时信息
function showfolderaccessinfo(foldername,infotype) '//功能:显示目录创建时信息 '//形参:目录名,信息类别 '// 1 -----创建时间 '// 2 -----上次访问时间 '// 3 -----上次修改时间 '// 4 -----目录路径 '// 5 -----目录名称 '// 6 -----目录类型 '// 7 -----目录大小 '// 8 -----父目录 '// 9 -----根目录 '//返回值:成功为目录创建时信息,失败:-1 '// dim f, s if reportfolderstatus(foldername) = 1 then set f = fso.getfolder(foldername) select case infotype case 1 s = f.datecreated '// 1 -----创建时间 case 2 s = f.datelastaccessed '// 2 -----上次访问 时间 case 3 s = f.datelastmodified '// 3 -----上次修改时间 case 4 s = f.path '// 4-----文件路径 case 5 s = f.name '// 5-----文件名称 case 6 s = f.type '// 6-----文件类型 case 7 s = f.size '// 7-----文件大小 case 8 s = f.parentfolder '// 8 -----父目录 case 9 s = f.rootfolder '// 9 -----根目录 end select showfolderaccessinfo = s else showfolderaccessinfo = -1 end if end function
20.返回文件夹嵌套数
function displayleveldepth(pathspec) dim f, n ,path set f = fso.getfolder(pathspec) if f.isrootfolder then displayleveldepth ="指定的文件夹是根文件夹。"&rootfolder else do until f.isrootfolder path = path & f.name &" " set f = f.parentfolder n = n + 1 loop displayleveldepth ="指定的文件夹是嵌套级为 " & n & "的文件夹。 "&path end if end function
21.判断指定磁盘驱动器是否存在?
'response.write reportdrivestatus("c:\") function reportdrivestatus(drv) '//功能:判断磁盘是否存在 '//形参:磁盘 '//返回值:成功为1,失败为-1 '// dim msg msg = -1 if fso.driveexists(drv) then msg = 1 else msg = -1 end if reportdrivestatus = msg end function
22.fso返回指定磁盘可用的类型包括 fat、ntfs 和 cdfs。
'response.write showfilesystemtype("c:\") function showfilesystemtype(drvspec) '//功能:磁盘类型 '//形参:磁盘名 '//返回值:成功为类型:fat、ntfs 和 cdfs,失败:-1 '// dim d if reportdrivestatus(drvspec) = 1 then set d = fso. getdrive(drvspec) showfilesystemtype = d.filesystem else showfilesystemtype = -1 end if end function