操作完磁碟機,接著就是來操作檔案夾了。其中包括:提取檔案夾資訊、建立檔案夾、刪除檔案夾、複製檔案夾、移動檔案夾等。下面就具體來看。
一、fso.GetFolder
一看就明白,是提取檔案夾了。那具體是提取哪個檔案夾呢?後面肯定要跟一個檔案夾的路徑。提取出來了再來顯示該檔案夾相關資訊呢?是不是有要具體提取下去。所以,看程式:
1,getfldr.asp
<% Set fso = CreateObject("Scripting.FileSystemObject") Set fldr = fso.GetFolder("c:\Program Files") Response.Write "父資料夾名字是:" & fldr & "<br>"If fldr.IsRootFolder = True Then Response.Write "該檔案夾是一根資料夾" & "<br>" Else Response.Write "該檔案夾不是根資料夾" & "<br>" End If Response.Write "磁碟機名字是:" & fldr.Drive & "<br>" %> |
首先建立FSO組件的串連是必不可少的啦,然後Set fldr = fso.GetFolder("c:\Program Files")設定fldr對象被賦值,以作下面程式的引用。
fldr.IsRootFolder即為判斷該檔案夾是否為一根資料夾,值為布爾值(true or false);fldr.Drive則顯示該檔案夾所在的磁碟機代號了。
二、fso.CreateFolder
下面比較讓人激動的是通過ASP建立檔案夾了,你可以在你的權力範圍內任意位置建立任意檔案夾。
2,creatfldr.asp
<% Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateFolder ("c:\cnbruce") Response.Write "檔案夾名為" & fso.GetBaseName("c:\cnbruce") %> |
執行程式,應該發現C盤多出了cnbruce檔案夾,fso.GetBaseName則是提取檔案夾名。
三、fso.DeleteFolder
通過ASP可以建立了檔案夾,則同樣可以刪除檔案夾。
3,delfldr.asp
<% Set fso = CreateObject("Scripting.FileSystemObject") fso.DeleteFolder("c:\cnbruce") Response.Write "檔案夾已刪除" %> |
發現剛建立的cnbruce檔案夾確實已被刪除。
注意,有時需要刪除檔案夾,而該檔案夾不存在時,會出現程式邏輯性錯誤。則應先判斷檔案夾的狀態。
<% dir=server.mappath("cnbruce") Set fso = CreateObject("Scripting.FileSystemObject") if (fso.FolderExists(dir)) then fso.DeleteFolder(dir) response.write("cnbruce檔案夾已經刪除") else fso.CreateFolder(dir) response.write("cnbruce檔案夾已經建立") end if %> |
那下面就採用一個通用程式來靈活應變下。
4,mainflr.asp
<% Sub CreateAFolder(file) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateFolder(file) response.write "已經建立了"&file End SubSub DeleteAFolder(file) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") fso.DeleteFolder(file) response.write "已經刪除了"&file End Sub %> <% subname=request.form("submit") create=request.form("create") del=request.form("del") if subname<>"" then if create<>"" then call CreateAFolder(""&create&"") end if if del<>"" then call DeleteAFolder(""&del&"") end if end if %> <form action="mainflr.asp" method="post"> <input name="create"> <input type="submit" value="建立" name="submit"> </form> <hr> <form action="mainflr.asp" method="post"> <input name="del"> <input type="submit" value="刪除" name="submit"> </form> |
需要注意的是:刪除並不會提示“確認要清除”這項。這點你需要謹慎處理,特別是對你的系統檔案夾。
四、fso.MoveFolder
主要作用是進行檔案夾的移動,相當於剪下粘貼動作。
5,movefldr.asp
<% Set fso = CreateObject("Scripting.FileSystemObject") fso.CreateFolder ("c:\cnbruce") fso.MoveFolder "c:\cnbruce", "C:\Program Files\" %> <a href="C:\Program Files\">查看cnbruce檔案夾有沒有移動過來</a> |
格式:fso.MoveFolder "被移動的檔案夾","移動到的檔案夾"
本程式先是在C盤下建立了cnbruce檔案夾,然後將其移動到C:\Program Files\檔案夾下面。
不過同樣需要注意的是你的系統檔案夾不能亂移動。
五、fso.CopyFolder
主要作用:將檔案夾從某位置複製到另一位置。
6,copyfldr.asp
<% Set fso = CreateObject("Scripting.FileSystemObject") fso.CopyFolder "c:\Program Files\cnbruce", "c:\" %> <a href="C:\">查看cnbruce檔案夾有沒有複製過來</a> |
該程式是建立在上一movefldr.asp的執行結果基礎之上來完成複製到C盤根目錄下的。(話比較長-_-!)
當然,其拷貝也是將該檔案夾包括裡面所以子檔案夾和檔案統統拷貝。
到最後再試著將c:\Program Files\cnbruce和c:\cnbruce兩個檔案夾進行刪除掉吧。
不過,繼續提醒你:不要寫錯了,比如寫成c:\Program Files,那你就慘了:這叫玩命,學ASP玩出心跳出來了。
對檔案夾的操作差不多了,是不是感到用處比較大?有訓言:好東西是把雙刃劍。正義和邪惡就只一線間,注意正規合理利用該組件。不過還有你放心的是,現在網站空間服務商對這權力已經限定得死死的了,你再怎麼鬧翻也不會冒泡的:)
然後接下來就是更微妙的:FSO對檔案的操作。