ASP中常用的22个FSO文件操作函数整理

时间:2021-05-28

在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 fIf ReportFileStatus(FileName) = 1 ThenSet f = fso.Getfile(FileName)GetFileSize = f.SizeElseGetFileSize = -1End ifEnd Function

2.使用FSO删除指定文件

Function deleteAFile(filespec)'//功能:文件删除'//形参:文件名'//返回值:成功为1,失败为-1'//If ReportFileStatus(filespec) = 1 Thenfso.deleteFile(filespec)deleteAFile = 1ElsedeleteAFile = -1End ifEnd Function

3.FSO显示指定目录下的所有文件

Function ShowFileList(folderspec)'//功能:目录存在时显示此目录下的所有文件'//形参:目录名'//返回值:成功为文件列表,失败为-1'//Dim f, f1, fc, sIf ReportFolderStatus(folderspec) = 1 ThenSet f = fso.GetFolder(folderspec)Set fc = f.FilesFor Each f1 in fcs = s & f1.names = s & "|"NextShowFileList = sElseShowFileList = -1End ifEnd Function

4.使用fso复制指定文件

Function CopyAFile(SourceFile,DestinationFile)'//功能:源文件存在时,才能对文件进行复制,目的文件无影响'//形参:源文件,目的文件'//返回值:成功为1,失败为-1'//Dim MyFileIf ReportFileStatus(SourceFile) = 1 ThenSet MyFile = fso.GetFile(SourceFile)MyFile.Copy (DestinationFile)CopyAFile = 1ElseCopyAFile = -1End ifEnd Function

5.源文件存在时目的文件不存在时才能对文件进行移动

'Response.Write MoveAFile("f:\123\4561.exe","f:\123\4562.txt")Function MoveAFile(SourceFile,DestinationFile)'//形参:源文件,目的文件'//返回值:成功为1,失败为-1'//If ReportFileStatus(SourceFile)=1 AndReportFileStatus(DestinationFileORPath) =-1 Thenfso.MoveFile SourceFile,DestinationFileORPathMoveAFile = 1ElseMoveAFile = -1End ifEnd Function

6.FSO判断指定文件是否存在?

Function ReportFileStatus(FileName)'//功能:判断文件是否存在'//形参:文件名'//返回值:成功为1,失败为-1'//Dim msgmsg = -1If (fso.FileExists(FileName)) Thenmsg = 1Elsemsg = -1End IfReportFileStatus = msgEnd Function

7.FSO读取文件创建日期

Function ShowDatecreated(filespec)'//功能:文件创建日期'//形参:文件名'//返回值:成功:文件创建日期,失败:-1'//Dim fIf ReportFileStatus(filespec) = 1 ThenSet f = fso.GetFile(filespec)ShowDatecreated = f.DatecreatedElseShowDatecreated = -1End ifEnd Function

8.FSO显示文件读写权限属性

Function GetAttributes(FileName)'//功能:显示文件属性'//形参:文件名'//返回值:成功:文件属性,失败:-1'//Dim f,StrIf ReportFileStatus(FileName) = 1 ThenSet f = fso.GetFile(FileName)select Case f.attributesCase 0 Str="普通文件。没有设置任何属性。 "Case 1 Str="只读文件。可读写。 "Case 2 Str="隐藏文件。可读写。 "Case 4 Str="系统文件。可读写。 "Case 16 Str="文件夹或目录。只读。 "Case 32 Str="上次备份后已更改的文件。可读写。 "Case 1024 Str="链接或快捷方式。只读。 "Case 2048 Str=" 压缩文件。只读。"End selectGetAttributes = StrElseGetAttributes = -1End ifEnd Function

9.FSO显示指定文件最后一次访问/最后一次修改时间

'Response.Write ShowFileAccessInfo("文件路径")Function ShowFileAccessInfo(FileName,InfoType)'//功能:显示文件创建时信息'//形参:文件名,信息类别'// 1 -----创建时间'// 2 -----上次访问时间'// 3 -----上次修改时间'// 4 -----文件路径'// 5 -----文件名称'// 6 -----文件类型'// 7 -----文件大小'// 8 -----父目录'// 9 -----根目录'//返回值:成功为文件创建时信息,失败:-1'//Dim f, sIf ReportFileStatus(FileName) = 1 thenSet f = fso.GetFile(FileName)select Case InfoTypeCase 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 selectShowFileAccessInfo = sELseShowFileAccessInfo = -1End ifEnd Function

10.FSO写指定内容到文本文件

Function WriteTxtFile(FileName,TextStr,WriteORAppendType)Const ForReading = 1, ForWriting = 2 , ForAppending = 8Dim f, mselect Case WriteORAppendTypeCase 1: '文件进行写操作Set f = fso.OpenTextFile(FileName, ForWriting, True)f.Write TextStrf.CloseIf ReportFileStatus(FileName) = 1 thenWriteTxtFile = 1ElseWriteTxtFile = -1End ifCase 2: '文件末尾进行写操作If ReportFileStatus(FileName) = 1 thenSet f = fso.OpenTextFile(FileName, ForAppending)f.Write TextStrf.CloseWriteTxtFile = 1ElseWriteTxtFile = -1End ifEnd selectEnd Function

11.利用FSO读取文本文件内容

Function ReadTxtFile(FileName)Const ForReading = 1, ForWriting = 2Dim f, mIf ReportFileStatus(FileName) = 1 thenSet f = fso.OpenTextFile(FileName, ForReading)m = f.ReadLine'm = f.ReadAll'f.SkipLineReadTxtFile = mf.CloseElseReadTxtFile = -1End ifEnd Function

12.FSO返回文件夹目录空间大小

Function GetFolderSize(FolderName)'//功能:取目录大小'//形参:目录名'//返回值:成功为目录大小,失败为-1'//Dim fIf ReportFolderStatus(FolderName) = 1 ThenSet f = fso.GetFolder(FolderName)GetFolderSize = f.SizeElseGetFolderSize = -1End ifEnd Function

13.使用FSO创建文件夹

Function createFolderDemo(FolderName)'//功能:创建的文件夹'//形参:目录名'//返回值:成功为1,失败为-1'//Dim fIf ReportFolderStatus(Folderspec) = 1 ThencreateFolderDemo = -1ElseSet f = fso.createFolder(FolderName)createFolderDemo = 1End ifEnd Function

14.FSO删除指定文件夹目录

Function deleteAFolder(Folderspec)'//功能:目录删除'//形参:目录名'//返回值:成功为1,失败为-1'//Response.write FolderspecIf ReportFolderStatus(Folderspec) = 1 Thenfso.deleteFolder (Folderspec)deleteAFolder = 1ElsedeleteAFolder = -1End ifEnd Function

15.FSO显示指定目录的文件夹目录列表

Function ShowFolderList(folderspec)'//功能:目录存在时显示此目录下的所有子目录'//形参:目录名'//返回值:成功为子目录列表,失败为-1'//Dim f, f1, fc, sIf ReportFolderStatus(folderspec) = 1 ThenSet f = fso.GetFolder(folderspec)Set fc = f.SubFoldersFor Each f1 in fcs = s & f1.names = s & "|"NextShowFolderList = sElseShowFolderList = -1End ifEnd Function

16.FSO复制指定文件夹目录

Function CopyAFolder(SourceFolder,DestinationFolder)'//功能:源目录存在时,才能对目录进行复制,目的目录无影响'//形参:源目录,目的目录'//返回值:成功为1,失败为-1'//Dim MyFolderIf ReportFolderStatus(SourceFolder) = 1 and ReportFolderStatus(DestinationFolder) = -1 ThenSet MyFolder = fso.GetFolder(SourceFolder)fso.CopyFolder SourceFolder,DestinationFolderCopyAFolder = 1ElseCopyAFolder = -1End ifEnd Function

17.移动指定文件夹目录

Function MoveAFolder(SourcePath,DestinationPath)'//功能:源目录存在时目的目录不存在时才能对目录进行移动'//形参:源目录,目的目录'//返回值:成功为1,失败为-1'//If ReportFolderStatus(SourcePath)=1 And ReportFolderStatus(DestinationPath)=0 Thenfso.MoveFolder SourcePath, DestinationPathMoveAFolder = 1ElseMoveAFolder = -1End ifEnd Function

18.判断某目录是否存在

'Response.Write ReportFolderStatus("G:\soft\delphi\my_pro\")Function ReportFolderStatus(fldr)'//功能:判断目录是否存在'//形参:目录'//返回值:成功为1,失败为-1'//Dim msgmsg = -1If (fso.FolderExists(fldr)) Thenmsg = 1Elsemsg = -1End IfReportFolderStatus = msgEnd Function

19.显示目录创建时信息

Function ShowFolderAccessInfo(FolderName,InfoType)'//功能:显示目录创建时信息'//形参:目录名,信息类别'// 1 -----创建时间'// 2 -----上次访问时间'// 3 -----上次修改时间'// 4 -----目录路径'// 5 -----目录名称'// 6 -----目录类型'// 7 -----目录大小'// 8 -----父目录'// 9 -----根目录'//返回值:成功为目录创建时信息,失败:-1'//Dim f, sIf ReportFolderStatus(FolderName) = 1 thenSet f = fso.GetFolder(FolderName)select Case InfoTypeCase 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 selectShowFolderAccessInfo = sELseShowFolderAccessInfo = -1End ifEnd Function

20.返回文件夹嵌套数

Function DisplayLevelDepth(pathspec)Dim f, n ,PathSet f = fso.GetFolder(pathspec)If f.IsRootFolder ThenDisplayLevelDepth ="指定的文件夹是根文件夹。"&RootFolderElseDo Until f.IsRootFolderPath = Path & f.Name &""Set f = f.ParentFoldern = n + 1LoopDisplayLevelDepth ="指定的文件夹是嵌套级为 " & n & "的文件夹。"&PathEnd IfEnd Function

21.判断指定磁盘驱动器是否存在?

'Response.Write ReportDriveStatus("C:\")Function ReportDriveStatus(drv)'//功能:判断磁盘是否存在'//形参:磁盘'//返回值:成功为1,失败为-1'//Dim msgmsg = -1If fso.DriveExists(drv) Thenmsg = 1Elsemsg = -1End IfReportDriveStatus = msgEnd Function

22.FSO返回指定磁盘可用的类型包括 FAT、NTFS 和 CDFS。

'Response.Write ShowFileSystemType("C:\")Function ShowFileSystemType(drvspec)'//功能:磁盘类型'//形参:磁盘名'//返回值:成功为类型:FAT、NTFS 和 CDFS,失败:-1'//Dim dIf ReportDriveStatus(drvspec) = 1 ThenSet d = fso. GetDrive(drvspec)ShowFileSystemType = d.FileSystemELseShowFileSystemType = -1End ifEnd Function

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章