c#中.net中得io類雖然功能很強大,但是正是因為功能強大,所以在很多虛擬服務商的服務器上并不實用 。因為io.directory和io.directoryinfo在應用文件夾操作中,會遍歷網站所在的硬盤的磁盤跟目錄,一般虛擬服務商并不會給這個磁盤的network service用戶開啟讀取權限,所以在操作文件夾的時候,使用io下的這兩個類會出現如下錯誤
未找到路徑“e:/”的一部分。 
說明: 執行當前 web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。 
異常詳細信息: system.io.directorynotfoundexception: 未找到路徑“e:/”的一部分。
源錯誤:
執行當前 web 請求期間生成了未處理的異常??梢允褂孟旅娴漠惓6褩8櫺畔⒋_定有關異常原因和發生位置的信息。
堆棧跟蹤:
[directorynotfoundexception: 未找到路徑“e:/”的一部分。]   
system.io.__error.winioerror(int32 errorcode, string str) +287   
system.io.directory.internalcreatedirectory(string fullpath, string path) 
+489system.io.directory.createdirectory(string path) 
+195system.io.directory.createdirectory(string path) 
+195system.io.directory.createdirectory(string path) 
+195system.io.directory.createdirectory(string path) 
+195                                                                                                                                                                                                                          
system.io.directory.createdirectory(string path) +195   
 
--------------------------------------------------------------------------------
版本信息: microsoft .net framework 版本:1.1.4322.2300; asp.net 版本:1.1.4322.2300
其中未找到路徑e:/,e盤就是服務器上磁盤路徑,可能會因為服務器的不同而不同。面對這個問題,服務商又不肯給你多開權限的情況下,應該怎么解決呢?
呵呵,可能是因為我基礎比較差,于是上網尋求解答,但是苦苦找不到答案。偶然的一次,發現asp可以應用fso創建文件夾。于是想到用asp.net調用window中得fso組件。呵呵,居然成功了,特寫這篇文章給那些苦于此問題不得解決的朋友和兄弟。
項目->引用 瀏覽 com組件 microsoft scripting runtime
scripting.filesystemobject fso=new scripting.filesystemobjectclass();
fso.createfolder(path)
就可以了,不過此種解決方法的前提是虛擬服務商開啟了fso
至于io操作文件夾得兩個類為什么會遍歷磁盤根目錄還在研究中,不過問題終于解決了,希望了解此的人能給大家一個答案。
新聞熱點
疑難解答
圖片精選