這篇文章主要介紹了ASP移動文件函數movefile權限不足的替代方法,本文先是介紹了一個替代方法,後又找出了實際原因,需要的朋友可以參考下
這幾天做一個項目,是寫一個語句,將D盤的檔案全部移動到E盤去,在本地XP環境下測試是很好的。
可是放到windows 2003伺服器後,提示權限不足。
我的IIS網站目錄放在D盤,而E盤只是一個新加卷,有一些文件很大也很多,但是D盤不夠用了,所以出此下策。
百度了一下,很多這樣的問題,無非就是增加E碟的權限啊,或是把E碟當成虛擬目錄。
可是都不管用,照樣提醒,唯一的差別就是我使用的是動態卷,而XP下是基本卷,我不想改變捲盤。
最後找到了下面的方法:
用fso的movefile會出現權限不足的情況,所以程式碼不能執行。
所以用copyfile 再deletefile 避免了不必要的麻煩。
即:
複製代碼代碼如下:
Set fso=CreateObject("scripting.filesystemobject")
fso.MoveFile "檔案路徑","目標"
這個會出現問題。
用:
複製代碼代碼如下:
Set fso=CreateObject("scripting.filesystemobject")
fso.CopyFile "檔案路徑","目標"
fso.DeleteFile "檔案路徑"
這樣果斷解決了問題。複製可以移動不行。
4.30更新
後來鼓搗了一下,原來不是E碟權限的問題,而是D碟權限的問題,也就是IIS網站目錄權限的問題。
給D盤加上Internet 來賓帳戶,也就是加上以IUSR_開頭的帳戶,這個帳戶是IIS帳戶。
然後使用MoveFile就沒問題了。
如果要移動或刪除一個文件,首先檢查的應該是來源文件的權限,而不是目標文件的權限。
網路上的教學真是害人啊。