2013-02-11 60 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); 
}