2013-02-11 64 views
0

我想要將C#資源中的文件插入USB驅動器,並將其插入USB驅動器中。我已經有了能夠檢測USB驅動器是否已插入的代碼。我遇到的是寫作的資源文件的問題,這裏是我的嘗試:將資源文件寫入USB

if (File.Exists(e.Drive + "\autorun.inf") == false) { 
    File.Copy(@"Resources\update.ico", e.Drive); 
    File.Copy(@"Resources\autorun.inf", e.Drive); 
} 

e.Drive包含插入的USB記憶棒的路徑(例如F:\)。我收到一條錯誤消息:

找不到路徑'F:\'的一部分。

+0

可疑......我會冒險猜測他們正在使用http://www.codeproject.com/Articles/18062/Detecting-USB-Drive-Removal-in-aC-Program來檢測新設備並用自己的自動覆蓋自動運行。但這只是一個猜測。 – FlyingStreudel 2013-02-11 21:19:39

+0

是的,我還沒有技術來自己寫這樣的東西(USB檢測的東西)。不慚愧承認這一點。 – user1991771 2013-02-11 21:24:48

+0

使用文章沒有錯。我只是想說,你在做什麼是可疑的。 – FlyingStreudel 2013-02-11 21:30:13

回答

2

的第二個參數File.Copy不能只是一個文件夾,你有提供完整的路徑。

+0

e.Drive包含F:\所以應該沒問題,不是? – 2013-02-11 21:12:09

+0

不,請閱讀文檔。 「目標文件的名稱,不能是目錄或現有文件。」 – Jason 2013-02-11 21:13:13

+0

@Preet不,你需要一個目標文件名。 'File.Copy(Path.Combine(sourceDir,fName),Path.Combine(backupDir,fName)' – AaronLS 2013-02-11 21:13:24

1

你需要躲避\\autorun.inf前或使用@串

if (File.Exists(e.Drive + "\\autorun.inf") == false) { 
    File.Copy(@"Resources\update.ico", e.Drive); 
    File.Copy(@"Resources\autorun.inf", e.Drive); 
} 

if (File.Exists(e.Drive + @"\autorun.inf") == false) { 
    File.Copy(@"Resources\update.ico", e.Drive); 
    File.Copy(@"Resources\autorun.inf", e.Drive); 
}