在ASP中,F(xiàn)SO的意思是File System Object,即文件系統(tǒng)對象。我們將要操縱的計(jì)算機(jī)文件系統(tǒng),在這里是指位于web服務(wù)器之上。所以,確認(rèn)你對此擁有合適的權(quán)限。理想情況下,你可以在自己的機(jī)器上建立一個(gè)web服務(wù)器,這樣就能方便地進(jìn)行測試。如果運(yùn)行于Windows平臺,請?jiān)囈辉囄④浌镜腤eb服務(wù)器iis。
FSO 模型對象
Drive Object:驅(qū)動器對象 供存取磁盤或者網(wǎng)絡(luò)驅(qū)動器
FileSystemObject Object:文件系統(tǒng)對象 供存取計(jì)算機(jī)的文件系統(tǒng)
Folder Object:文件夾對象 供存取文件夾的所有屬性
TextStream Object:文本流對象 供存取文件內(nèi)容
你可以使用上面的對象做計(jì)算機(jī)上的任何事情,也包括破壞活動 ;-( 所以,請小心使用FSO。在web環(huán)境中,存儲信息是非常重要的,比如用戶信息,日志文件,等等。FSO提供了一個(gè)強(qiáng)大且簡單的方法高效率地保存數(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)
'//功能:目錄存在時(shí)顯示此目錄下的所有文件
'//形參:目錄名
'//返回值:成功為文件列表,失敗為-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)
'//功能:源文件存在時(shí),才能對文件進(jìn)行復(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.源文件存在時(shí)目的文件不存在時(shí)才能對文件進(jìn)行移動
'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="隱藏文件??勺x寫。 "
Case 4 Str="系統(tǒng)文件??勺x寫。 "
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顯示指定文件最后一次訪問/最后一次修改時(shí)間
'Response.Write ShowFileAccessInfo("文件路徑")
Function ShowFileAccessInfo(FileName,InfoType)
'//功能:顯示文件創(chuàng)建時(shí)信息
'//形參:文件名,信息類別
'// 1 -----創(chuàng)建時(shí)間
'// 2 -----上次訪問時(shí)間
'// 3 -----上次修改時(shí)間
'// 4 -----文件路徑
'// 5 -----文件名稱
'// 6 -----文件類型
'// 7 -----文件大小
'// 8 -----父目錄
'// 9 -----根目錄
'//返回值:成功為文件創(chuàng)建時(shí)信息,失敗:-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)建時(shí)間
Case 2 s = f.DateLastAccessed '// 2 -----上次訪問時(shí)間
Case 3 s = f.DateLastModified '// 3 -----上次修改時(shí)間
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: '文件進(jìn)行寫操作
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: '文件末尾進(jìn)行寫操作
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)
'//功能:目錄存在時(shí)顯示此目錄下的所有子目錄
'//形參:目錄名
'//返回值:成功為子目錄列表,失敗為-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)
'//功能:源目錄存在時(shí),才能對目錄進(jìn)行復(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)
'//功能:源目錄存在時(shí)目的目錄不存在時(shí)才能對目錄進(jìn)行移動
'//形參:源目錄,目的目錄
'//返回值:成功為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)建時(shí)信息
Function ShowFolderAccessInfo(FolderName,InfoType)
'//功能:顯示目錄創(chuàng)建時(shí)信息
'//形參:目錄名,信息類別
'// 1 -----創(chuàng)建時(shí)間
'// 2 -----上次訪問時(shí)間
'// 3 -----上次修改時(shí)間
'// 4 -----目錄路徑
'// 5 -----目錄名稱
'// 6 -----目錄類型
'// 7 -----目錄大小
'// 8 -----父目錄
'// 9 -----根目錄
'//返回值:成功為目錄創(chuàng)建時(shí)信息,失敗:-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)建時(shí)間
Case 2 s = f.DateLastAccessed '// 2 -----上次訪問
時(shí)間
Case 3 s = f.DateLastModified '// 3 -----上次修改時(shí)間
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
您可能感興趣的文章:- ASP FSO文件操作函數(shù)代碼(復(fù)制文件、重命名文件、刪除文件、替換字符串)
- windows.vbs.FSO.文件操作信息.磁盤驅(qū)動信息.文件夾操作信息全集
- vbscript腳本編程教程2利用fso來進(jìn)行文件操作
- ASP編程入門進(jìn)階(十八):FSO組件之文件操作(下)
- ASP編程入門進(jìn)階(十八):FSO組件之文件操作(中)
- ASP編程入門進(jìn)階(十八):FSO組件之文件操作(上)