fso確實存在一些弱點 - 比如,它很難處理二進制文件,這包括Word文檔、許多圖形格式的文件和其他一些文件。然而你仍然可以用其他的方式操作這些文件 - 移動它們、刪除它們,等等。你不能做的就是對它們進行打開或者寫操作。
另外一個限制是對於文件長度的問題。當立刻讀寫一些內容時,所有的信息都存儲在內存中 - 內容越多,消耗的內存就越大。這將使每個工作都變得慢起來。所以,如果需要操作非常大的文件,或者大量的小文件時,考慮將文件分割成小塊,並且經常的清除內存。將應用程序融入進COM對象組件,也能大大地提高程序的速度。
同樣,你也不能使用FSO來管理權限以及文件、文件夾的屬性,執行安全加密的一個很好方法就是將前面提到的留言簿文件設置為只讀,在需要時再設置為可寫,然後再修改回來。這個方法經常在CGI和Perl使用,但是很不幸,還沒有令人滿意的方法來用FSO實現。
還能用FSO做什麼?
在FSO中還有許多很棒的功能,但許多人沒有意識到。這些功能常常是在你感到做某些事情很難後才發現的,這時你經常要感歎到:要是我早知道這個方法就好了!
下面列舉一下這些不常用但是卻非常酷的功能:
很少被了解的FSO功能
GetSpecialFolder Method 返回特定的Windows文件夾的路徑: Windows安裝目錄;Windows系統目錄;Windows臨時目錄 FSO.GetSpecialFolder([0, 1, or 2])
GetTempName Method 返回一個隨機產生的文件或者目錄名字,用於需要存儲臨時數據時
GetAbsolutePathName Method 返回文件夾的絕對路徑(類似於Server.MapPath)。
比如,FSO.GetAbsolutePathName("region") 將返回類似於下面的結果:"c:mydocsmyfolder egion"
GetExtensionName Method 返回路徑中最後部分的擴展名
(比如:FSO.GetExtensionName("c:docs est.txt") 將返回txt)
GetBaseName and GetParentFolder Methods 返回路徑中最後部分的父文件夾
(比如:FSO.GetParentFolder ("c:docsmydocs") 將返回'docs')
Drives PRoperty 返回所有本地可用驅動器的集合,用於建立資源浏覽器樣的用戶接口。
使用上面的功能時,最好建立好出錯處理的代碼。因為如果需要的參數不存在,將會產生麻煩的信息。
總結
如我們所見,FSO非常有用,這裡介紹的僅僅是冰山一角。你可以使用FSO建立功能強大的應用程序,簡單地完成許多任務。