星期五, 5月 27, 2011

[VFP] Windows Script Host - FileSystemObject

之前利用COPY FILE 命令搬移公司派工圖檔時才發現,COPY FILE 命令複製檔案時,會把檔名全部變成小寫,為了避免這個問題,因此改用 Windows Script Host(WSH)- FileSystemObject(FSO)來複製檔案,就可以避免這個問題。
oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.CopyFile((cOldFilePath),(cNewFilePath))
RELEASE oFSO
  • 20151223 
執行 oFSO.CopyFile 時,一直出現下面錯誤訊息

CopyFile Error

後來才發現沒有 Server 端寫入權限,帳號明明是 administrator,Orz

而在VFP中,並沒有可以重新命名資料夾的指令,可以利用 FSO 的 MoveFolder 來達成。
oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.MoveFolder((cOldDirPath),(cNewDirPath))
RELEASE oFSO
MoveFolder可以用來搬移檔案,進階使用更改資料夾名稱,而更改檔案名稱也是一樣的用法。
oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.MoveFile((cOldFilePath),(cNewFilePath))
RELEASE oFSO
利用 RMDIR 或 RD 命令刪除資料夾時,出現 "The directory is not empty(目錄不是空的)" 錯誤,才發現資料夾內假如有隱藏的系統檔案,會無法刪除資料夾,EX:Thumbs.db,利用 FSO 即使有系統檔案也可以刪除資料夾。
oFSO = CreateObject("Scripting.FileSystemObject")
oFSO.DeleteFolder((lcDirPath))
RELEASE oFSO
備註:作業系統從 Windows 98 開始有 WSH;只有 Windows 95 和 Windows NT 4.0 沒有

1 則留言: