2013-08-16 64 views
0

我正在寫一個實用程序將文件複製到/從遠程驅動器(例如SkyDrive)。當我要覆蓋文件時,我彈出一個常規的「文件存在,是否要覆蓋Y/N」消息框;是否有可能使用標準的Windows文件覆蓋對話框?有了這三個選項(複製和替換,不要複製,複製但保留兩者)以及更詳細的大小/日期信息?或者我應該寫我自己的表單來複制它? (說實話,我一直在尋找這兩天,它可能會快得多,只寫自己的。)使用標準的「覆蓋」對話框與自定義信息

澄清:我需要顯示對話框當我選擇 - 有時我不想顯示它,只想覆蓋文件。

如果可能的話,我寧願用C#/ .NET工作。但是,如果只有一個非託管解決方案存在,我也會採取。

回答

2

是的,這是可能的!我爲Send to Dropbox這麼做了一個我爲資源管理器編寫的小插件實用程序,右鍵單擊並將文件發送到Dropbox文件夾。

複製SHFileOperation.cs到你的項目,你可以調用它像這樣:

ShellFileOperation.CopyItems(source, target); 

source可以有多個文件/目錄。每個項目必須用引號括起來(")。

target是目標目錄。

例子:

ShellFileOperation.CopyItems("\"c:\\foo.txt\" \"c:\\bar.txt\"", "d:\\xyz"); 
+0

不幸的是這是行不通的 - 我已經有複製部分的照顧(我不能輕易更換)。我只需要顯示覆蓋對話框,並填寫自己的信息(不會自動從FileInfo對象或任何其他內容讀取)。 –

+0

這太好了,謝謝!沒有問題,工作得很好! – Nik