台灣最大程式設計社群網站
線上人數
574
 
會員總數:245619
討論主題:189317
歡迎您免費加入會員
討論區列表 >> 專欄文章 >> 檔案存取元件範例
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
檔案存取元件範例
價值 : 0 QP  點閱數:934 回應數:0
樓主

站務人員 站長
門外漢
0 1580
542 9
發送站內信

捐贈 VP 給 站務人員
您是 win98+pws 嗎?
若是的話,那您的伺服器目錄是在 C:\Inetpub\wwwroot
一般的網頁 htm ,點兩下就會帶出瀏覽器顯示.
而 asp 必須透過伺服器來執行.
所以將 asp 檔置於 C:\Inetpub\wwwroot後
先打開瀏覽器,而後在網址(D):鍵入
http://你的電腦名稱/asp檔案名稱.asp
Enter
就可瞧見啦!
在子目錄裡,就鍵入 http://你的電腦名稱/子目錄名稱/asp檔案名稱.asp
電腦名稱及主目錄,可從個人web管理員裡頭得知.

如果下載了一攤範例,要一一輸入檔名,也挺累的.
所以我們用檔案存取元件寫個簡單的 list.asp ,置於 C:\Inetpub\wwwroot
以後先執行它,就可以顯示在同一目錄下的所有檔案,並且可直接點選執行.
將下列源碼複製,貼上另存為 list.asp

<HTML>
<HEAD>
<TITLE>檔案存取元件範例</TITLE>
<style TYPE="text/css">
<!--
A {text-decoration: none}
a:hover { Font-Weight:nomal; Color:White; background:Blue;}
a:active { Font-Weight:nomal; Color:White; background:Red;}
-->
</style>
</HEAD>
<BODY text="Black" link="Blue" vlink="Blue" alink="Red">
<%
dim strPathInfo, strPhysicalPath

'取得list.asp在主目錄之下的相對路徑
strPathInfo = Request.ServerVariables("PATH_INFO")

'取得list.asp的實體路徑
strPhysicalPath = Server.MapPath(strPathInfo)

Dim objFSO, objFile, objFileItem, objFolder, objFolderContents

'建立檔案存取物件
Set objFSO = CreateObject("Scripting.FileSystemObject")

'以 GetFile方法將list.asp之實體路徑傳給objFile變數
set objFile = objFSO.GetFile(strPhysicalPath)

'取得list所在的那一層目錄名稱
set objFolder = objFile.ParentFolder

'取得objFolder中之所有檔案
set objFolderContents = objFolder.Files

'為了能讓目錄中的所有檔案以字母順序做升羃排列,我們引進了泡'沫排序法的觀念並且以陣列的方式來儲存檔案名稱,檔案格式,檔案'大小和最後修改日期麼叫做泡沫排序法呢?待會會跟大家介紹'用I變數來取得陣列大小
I = 0
For Each objFileItem in objFolderContents
I = I + 1
Next
'定義四個陣列,分別儲存檔名,檔案格式,檔案大小,檔案最後修改日期,陣列的大小由I - 1得到
Y = I
Dim FileNameArray()
ReDim FileNameArray(Y)
Dim FileTypeArray()
ReDim FileTypeArray(Y)
Dim FileSizeArray()
ReDim FileSizeArray(Y)
Dim FileDateArray()
ReDim FileDateArray(Y)
'開始將檔名、檔案大小、檔案格式、檔案修改日期依序存入陣列之中
I = 0
For Each objFileItem in objFolderContents
fileNameArray(I) = objFileItem.Name
fileTypeArray(I) = objFileItem.type
fileSizeArray(I) = objFileItem.size
fileDateArray(I) = objFileItem.DateLastModified
I = I + 1
Next
'泡沫排序法,假設你有一個陣列,內有5筆資料,分別為10,8,6,9,7,要如何將他重新排列使得結果變成6,7,8,9,10.從下面的程式段中我們可以看出,第一次迴圈執行完後,結果變成6,10,8,9,7,第二次執行完結果變成6,8,10,9,7,第三次執行完結果變成6,7,10,9,8,第四次執行完結果變成6,7,8,10,9,'第五次執行完結果變成6,7,8,9,10正好符合我們所需要的結果,只不過在排序過程中必須加入一點SWAP(交換)的觀念,這裡是利用Temp變數來達到SWAP的目的,同時因為所有的陣列都必須做排序,所以在SWAP過程中另外加入三個Temp變數來完成,如果大家對排序的方法有疑問,可以去買一本計算機概論來參考參考。
For i = 0 to (UBound(fileNameArray)-1)
min = i
For j = (i + 1) to UBound(fileNameArray)
if UCase(fileNameArray(j)) < UCase(fileNameArray(min)) then
min = j
end if
temp = fileNameArray(min)
temp1 = fileTypeArray(min)
temp2 = fileSizeArray(min)
temp3 = fileDateArray(min)
fileNameArray(min) = fileNameArray(i)
fileTypeArray(min) = fileTypeArray(i)
fileSizeArray(min) = fileSizeArray(i)
fileDateArray(min) = fileDateArray(i)
fileNameArray(i) = temp
fileTypeArray(i) = temp1
fileSizeArray(i) = temp2
fileDateArray(i) = temp3
Next
Next
'一筆一筆的將目錄中所有檔案列出
%>
<% =objFile.ParentFolder %> <% =strPathInfo %>
<table width="90%" border="0">
<%For Y = 1 to I %>
<TR><td width="25%" align="LEFT">
<A HREF="<%= fileNameArray(Y) %>"><FONT FACE="Verdana" SIZE="3">
<%= fileNameArray(Y) %></A></FONT></TD>
<td width="32%" align="left"><FONT FACE="Tahoma" SIZE="2" COLOR="DarkGreen">
<%= fileTypeArray(Y) %></FONT></TD>
<td width="10%" align="RIGHT"><FONT FACE="Tahoma" SIZE="2" COLOR="DarkGreen">
<%= fileSizeArray(Y) %></FONT></TD>
<td width="33%" align="left"> <FONT FACE="Tahoma" SIZE="2" COLOR="DarkGreen">
<%= fileDateArray(Y) %></FONT></TD>
</TR>
<%
Next
%>
</TABLE>
</BODY>
</HTML>

這程序並沒不支援子目錄,可下載 --Active Server Explorer,
或程式下載區,網站及檔案管理,--檔案總管(岡山),.......
再稍做修改使之能直接點選執行.就更順手啦.

本篇文章發表於2002-04-04 00:00
目前尚無任何回覆
   

回覆
如要回應,請先登入.