就是利用FSO顯示某個目錄下的檔案或檔案夾時,如何進行排序。比如:按照檔案大小排序、檔案修改日期排序,或者是按照檔案名稱排序等等。
'假設這是你的檔案夾
folderPath = "d:\test"
set fso = server.CreateObject("Scripting.FileSystemObject")
set myfolder = fso.GetFolder
for each objFile in myfolder.Files
filename = objFile.Name
....
next
'file 對象有如下屬性:
Attributes 屬性 | DateCreated 屬性 | DateLastAccessed 屬性 | DateLastModified 屬性 | Drive 屬性 | Name 屬性 | ParentFolder 屬性 | Path 屬性 | ShortName 屬性 | ShortPath 屬性 | Size 屬性 | Type 屬性
對檔案進行處理 對檔案進行處理
這個部分是介紹怎樣進行檔案處理的:拷貝,移動以及刪除檔案;以及怎樣檢測一個檔案是否存在和接收一個檔案的有關屬性。
拷貝、移動以及刪除檔案
有不止一種方法來對檔案進行拷貝、移動以及刪除工作。你可以利用FileSystemObject對象的方法或者File對象的方法,其中FileSystemObject對象的方法更具有些變通性,因為你會不局限於一個單獨的檔案上。
下面是FileSystemObject對象對檔案操作的一些方法:
■CopyFile source, destination,[Overwrite]。這個方法將檔案進行複製,你可以使用 source參數統配符來在一個時刻進行多個檔案的複製。OverWrite參數將在目的檔案已經存在的情況下進行覆蓋操作。
■MoveFile source, destination.這個方法對檔案進行移動操作,同樣你可以使用統配 符來移動多個檔案,不過如果目的檔案已經存在,則會報錯而不允許覆蓋。
■DeleteFile FileSpecifier。這個方法刪除指定檔案,同樣還是可以利用統配符來進 行多檔案的刪除。如果沒有符合統配符的檔案,將會報錯。
在你使用這些方法之前,首先當然還是建立一個FileSystemObject對象的案例。下面就是一個完整的使用樣本:
<%
‘建立一個FileSystemObject的案例
Set MyFileObject=Server.CreateObject(“Scripting.FileSystemObject”)
‘建立一個要進行操作的檔案
Set MyFile=MyFileObject.CreateTextFile(“c:\test.txt”)
MyFile.WriteLine(“Hello”)
MyFile.Close
‘複製檔案操作
MyFileObject.CopyFile “c:\test.txt” “c:\test2.txt”
‘移動檔案操作
MyFileObject.MoveFile “c:\test.txt” “c:\test3.txt”
‘刪除這些檔案
MyFileObject.DeleteFile “c:\test.txt”
eObject.DeleteFile “c:\test3.txt”
%>
除了使用FileSystemObject對象的方法來進行這種操作以外,你還可以使用FILE對象。下面是File對象相關操作的同等方法:
■Copy newcopy,[Overwrite]。這種方法給當前檔案建立一個拷貝,當可選的 OverWrite參數為TRUE時,如果存在同名的目的檔案,則進行覆蓋。
■Move newcopy.這個方法用來移動當前檔案,同時當前檔案跟隨到新的名稱。
■Delete。刪除當前檔案。
在你使用這些方法之前,你必須建立File對象的一個案例,這樣的案例建立是在FileSystemObject對象中使用GetFile()方法來完成的,下面這個指令碼就是利用File對象進行各種操作的一個樣本:
<%
‘建立一個FileSystemObject對象的案例
Set MyFileObject=Server.CreateObject(“Scripting.FileSystemObject”)
‘建立一個要進行操作的檔案
Set MyFile=MyFileObject.CreateTextFile(“c:\test.txt”)
MyFile.WriteLine(“Hello”)
MyFile.Close
‘建立一個File對象的案例
Set afile=MyFileObject.GetFile(“c:\test.txt”)
‘複製檔案
Afile.copy “c:\test2.txt”
‘移動檔案
Afile.Move “c:\test3.txt”
‘刪除檔案
afile.Delete
%>
檢測檔案是否存在
如果需要瞭解一個特定的檔案是否存在,你需要FileSystemObject對象的FileExists()方法,只需要傳遞其物理地址就可以從傳回值是True和False來判斷其是否存在,下面就是這樣一個例子:
<HTML>
<HEAD><TITLE>檔案是否存在樣本</TITLE></HEAD>
<BODY>
<%
MySelf=Request.ServerVariables(“PATH_TRANSLATED”)
‘建立一個FileSystemObject對象案例
Set MyFileObject=Server.CreateObject(“Scripting.FileSystemObject”)
IF MyFileObject.FileExists(“MySelf”)
Response.write(“存在這個檔案”)
Else
Response.write(“不存在這個檔案”)
END IF
%>
</BODY>
</HTML>
這個指令碼就是檢查是否存在一個指定的檔案,在本例中,顯然是存在的,因為MySelf就是當前這個檔案(這裡面使用了ServerVariables變數PATH_TRANSLATED來擷取當前檔案的物理地址),當前這個檔案無論如何肯定是存在的,因此傳回值肯定是TRUE,那麼顯示為“存在這個檔案”。
接受檔案屬性
當處理檔案時,有些屬性是需要瞭解的,下面是File對象的屬性列表:
■Attributes.這個屬性類似於Dos命令的Attrib,顯示當前檔案的系統屬性。例如Read-Only,Hidden,System等等
■DateCreated.這個屬性返迴文件建立的時間和日期。
■DateLastAccessed.這個屬性返回該檔案上一次被使用的日期和時間
■DateLastModified.這個屬性返回該檔案上一次被修改的日期和時間
■Drive. 這個屬性傳回值為該檔案所在的磁碟機
■Name.這個屬性返回該檔案檔案名稱
■ParentFolder.這個屬性傳回值為該檔案所處的檔案夾
■Path.返回該檔案的全路徑
■Size.返回該檔案的位元組數
■Type.返回該檔案類型,例如Text文本,Asp檔案,或者網路資源(HTML)
在使用這些屬性之前,依然首先需要建立一個File對象的案例。下一個例子就是顯示c:\test.txt的各項屬性。
<HTML>
<HEAD><TITLE>邁至科網路ASP教程之檔案屬性樣本</TITLE></HEAD>
<BODY>
<%
‘建立一個FileSystemObject對象的案例
Set MyFileObject=Server.CreateObject(“Scripting.FileSystemObject”)
‘建立一個File對象的案例
Set Myfile=MyFileObject.GetFile(“c:\test.txt”)
%>
<Br>名稱:<%=Myfile.Name %>
<Br>路徑:<%=Myfile.Path %>
<Br>磁碟機:<%=Myfile.Drive %>
<Br>大小:<%=Myfile.size %>
<Br>類型:<%=Myfile.type %>
<Br>屬性:<%=Myfile.Attributes %>
<Br>建立日期:<%=Myfile.DateCreated %>
<Br>上次進入日期:<%=Myfile.LastAccessed %>
<Br>上次修改日期:<%=Myfile.LassModified %>
</BODY>
</HTML>
那麼顯示結果19.2所示。
圖19.2 檔案屬性
Attributes屬性需要解釋,它的傳回值是對應於下表的數字:
Attribute
值
Normal
0
Read-Only
1
Hidden
2
System
4
Volume
8
Directory
16
Archive
32
Alias
64
Compressed
128
那麼,由於這裡面屬性為Archive和Hidden,所以結合起來就是2(Hidden)+32(Archieve)=34,從數學上可以理解,每一個整數對應這樣的2的冪次的累加和肯定是唯一的,這些屬性還可以進行設定,例如,使c:\test.txt變成具有Archieve,Read-Only兩種屬性 ,那麼用下面這個指令碼
<%
‘建立一個FileSystemObject對象的案例
Set MyFileObject=Server.CreateObject(“Scripting.FileSystemObject”)
‘建立一個File對象的案例
Set Myfile=MyFileObject.GetFile(“c:\test.txt”)
‘進行屬性設定
MyFile.attributes=31
%>