我编写了一个应用程序,它应该将数据库文件(bazarganidb.db)从驱动程序d复制到调试文件夹。如果我想将它复制到另一个位置它没有任何问题但是当我为调试文件夹执行时没有任何事情发生,没有文件会被删除或copy.whats我的错? 我的代码:
private void button3_Click(object sender, EventArgs e)
{
try
{
string OriginalFile = @"D:\bazarganidb.db";
string FileToReplace = @"E:\BazarganiProj2\BazarganiProj\bin\Debug\bazarganidb.db";
if(File.Exists(FileToReplace))
File.Delete(FileToReplace);
File.Copy(OriginalFile, FileToReplace);
}
catch (Exception k)
{
Console.WriteLine(k);
}
}
答案 0 :(得分:0)
硬编码路径是一种不好的做法,使用Reflection来引用路径:
string FileToReplace = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase), "bazarganidb.db");
还要检查您对该文件夹的权限,尝试手动创建文件或文件夹,它将指示您是否拥有权限块。
另外,如果要覆盖文件,请使用带有3个参数的指定构造函数,如果要覆盖现有文件,则必须将第三个参数设置为true:
File.Copy(OriginalFile, FileToReplace,true);