FSO 檔案操作

來源:互聯網
上載者:User

就是利用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

%>

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.