2011-05-17 116 views
0

我正在將可執行文件的當前文件夾中的文件複製到網絡共享。VB6:在網絡共享內複製文件

我使用了下面的代碼,但如果文件存在,它將不會替代它。它很好地詢問用戶是否要更換。

Set oFSO = CreateObject("Scripting.FileSystemObject") 
oFSO.GetFile("c:\file.txt").Copy "\\server\sharename\", True 
+0

注意到,實際上它取代了,只需等待10秒就可以了。 – Rick 2011-05-17 15:02:51

回答

2

你必須建立自己的邏輯來檢查文件是否存在,並提高手動基於該消息框。您可以使用FileExists函數來檢查文件是否存在。

2

我的代碼示例適用於複製文件。您的網絡共享可能會拒絕訪問。

僅供參考,有一個選擇 - 使用FileCopy這樣的:

FileCopy <source file>, <destination file> 

它將覆蓋目標而不提示。如果你想提示,我可以想到兩種方法:

  1. 使用FileExists就像加文建議的那樣,並詢問用戶是否要覆蓋。
  2. 爲此使用Windows內置的功能。聽起來這可能是你最好的選擇。當文件複製時,SHFileOperation API將顯示一個帶取消按鈕的進度對話框。它也會提示覆蓋。使用的對話框與Windows資源管理器使用的對話框相同。對於wFunc使用FO_COPY;我不認爲你需要在fFlags中設置任何標誌,但可能會有一些興趣。將pFrom/pTo設置爲您的源文件/目標文件/目錄,然後找到所有者窗口(如果沒有,則爲0)。結構中的其他內容可以是NULL/0 /空。
+0

如果使用共享讀取打開源文件,則「FileCopy」不起作用。 FSO工作得很好。 – wqw 2011-05-18 06:30:01