ASP中常用的22個FSO文件操作函數(shù)整理
在ASP中,F(xiàn)SO的意思是File System Object,即文件系統(tǒng)對象。我們將要操縱的計算機文件系統(tǒng),在這里是指位于web服務(wù)器之上。所以,確認你對此擁有合適的權(quán)限。理想情況下,你可以在自己的機器上建立一個web服務(wù)器,這樣就能方便地進行測試。如果運行于Windows平臺,請試一試微軟公司的Web服務(wù)器iis。
FSO 模型對象
Drive Object:驅(qū)動器對象 供存取磁盤或者網(wǎng)絡(luò)驅(qū)動器
FileSystemObject Object:文件系統(tǒng)對象 供存取計算機的文件系統(tǒng)
Folder Object:文件夾對象 供存取文件夾的所有屬性
TextStream Object:文本流對象 供存取文件內(nèi)容
你可以使用上面的對象做計算機上的任何事情,也包括破壞活動 ;-( 所以,請小心使用FSO。在web環(huán)境中,存儲信息是非常重要的,比如用戶信息,日志文件,等等。FSO提供了一個強大且簡單的方法高效率地保存數(shù)據(jù)。FSO由微軟公司提供支持,對于非Windows系統(tǒng),大概不能再使用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復(fù)制指定文件
Function CopyAFile(SourceFile,DestinationFile) '//功能:源文件存在時,才能對文件進行復(fù)制,目的文件無影響 '//形參:源文件,目的文件 '//返回值:成功為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讀取文件創(chuàng)建日期
Function ShowDatecreated(filespec) '//功能:文件創(chuàng)建日期 '//形參:文件名 '//返回值:成功:文件創(chuàng)建日期,失?。?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顯示文件讀寫權(quán)限屬性
Function GetAttributes(FileName) '//功能:顯示文件屬性 '//形參:文件名 '//返回值:成功:文件屬性,失敗:-1 '// Dim f,Str If ReportFileStatus(FileName) = 1 Then Set f = fso.GetFile(FileName) select Case f.attributes Case 0 Str="普通文件。沒有設(shè)置任何屬性。 " Case 1 Str="只讀文件??勺x寫。 " Case 2 Str="隱藏文件。可讀寫。 " Case 4 Str="系統(tǒng)文件??勺x寫。 " Case 16 Str="文件夾或目錄。只讀。 " Case 32 Str="上次備份后已更改的文件??勺x寫。 " 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) '//功能:顯示文件創(chuàng)建時信息 '//形參:文件名,信息類別 '// 1 -----創(chuàng)建時間 '// 2 -----上次訪問時間 '// 3 -----上次修改時間 '// 4 -----文件路徑 '// 5 -----文件名稱 '// 6 -----文件類型 '// 7 -----文件大小 '// 8 -----父目錄 '// 9 -----根目錄 '//返回值:成功為文件創(chuàng)建時信息,失?。?1 '// Dim f, s If ReportFileStatus(FileName) = 1 then Set f = fso.GetFile(FileName) select Case InfoType Case 1 s = f.Datecreated '// 1 -----創(chuàng)建時間 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寫指定內(nèi)容到文本文件
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讀取文本文件內(nèi)容
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創(chuàng)建文件夾
Function createFolderDemo(FolderName) '//功能:創(chuàng)建的文件夾 '//形參:目錄名 '//返回值:成功為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復(fù)制指定文件夾目錄
Function CopyAFolder(SourceFolder,DestinationFolder) '//功能:源目錄存在時,才能對目錄進行復(fù)制,目的目錄無影響 '//形參:源目錄,目的目錄 '//返回值:成功為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.顯示目錄創(chuàng)建時信息
Function ShowFolderAccessInfo(FolderName,InfoType) '//功能:顯示目錄創(chuàng)建時信息 '//形參:目錄名,信息類別 '// 1 -----創(chuàng)建時間 '// 2 -----上次訪問時間 '// 3 -----上次修改時間 '// 4 -----目錄路徑 '// 5 -----目錄名稱 '// 6 -----目錄類型 '// 7 -----目錄大小 '// 8 -----父目錄 '// 9 -----根目錄 '//返回值:成功為目錄創(chuàng)建時信息,失敗:-1 '// Dim f, s If ReportFolderStatus(FolderName) = 1 then Set f = fso.GetFolder(FolderName) select Case InfoType Case 1 s = f.Datecreated '// 1 -----創(chuàng)建時間 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.返回文件夾嵌套數(shù)
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.判斷指定磁盤驅(qū)動器是否存在?
'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
相關(guān)文章
127.0.0.1無法訪問,沒有權(quán)限: GetObject
127.0.0.1無法訪問,沒有權(quán)限: GetObject...2007-02-02ASP編程入門進階(廿一):DAO SQL之建立數(shù)據(jù)庫表
ASP編程入門進階(廿一):DAO SQL之建立數(shù)據(jù)庫表...2007-01-01javascript asp教程第六課-- response方法
javascript asp教程第六課-- response方法...2007-03-03使用ASP在IIS創(chuàng)建WEB站點的函數(shù)
使用ASP在IIS創(chuàng)建WEB站點的函數(shù)...2006-06-06