c#wpf找不到FileStream和File.Copy文件

时间:2016-11-01 23:20:34

标签: c# wpf

我一直在努力争取这几个小时。 我正在使用AppDomain.CurrentDomain.BaseDirectory来获取我的应用程序目录的路径。我有一些代码,我使用FileStream和File.Copy来读取/创建/复制文件。这在VS中的调试模式下完美运行。文件将在Bin / Debug文件夹中创建和复制。

当我在另一台机器上或在VS外部安装我的应用程序时,代码运行并且不会出错。但是,我找不到在其尊重的文件夹中复制的文件。它们也不会出现在文件搜索中。在代码中,通过调用File.Exists在那里确认文件。但是我根本找不到我目录中的文件?我错过了什么?

以下在弹出窗口中返回EXISTS以及文件路径。但是,当我看时,文件不在那里。我也检查了显示隐藏文件。我认为它可能与AppDir有关,因为我可以将路径硬编码为字符串并且它可以工作。但是,当其他人接受应用程序时,我不知道应用程序的安装位置。

public string AppDir = AppDomain.CurrentDomain.BaseDirectory;

System.IO.File.Copy(filepath, AppDir + @"Content\Images\" + filename, true);
if(File.Exists(AppDir + @"Content\Images\" + dlg.SafeFileName) == true)
{
   MessageBox.Show("EXISTS");
   MessageBox.Show(AppDir + @"Content\Images\" + dlg.SafeFileName);
}

由于 伊恩

解决方案 - 文件被保存在虚拟目录中,因此我无法看到它们。我了解到我应该将内容文件放入用户文档文件夹中。我能够通过这段代码来做到这一点

private static string AppDir = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "GameMasters") + "\\";

1 个答案:

答案 0 :(得分:0)

感谢上面的Peter Duniho。

解决方案 - 文件被保存在虚拟目录中,因此我无法看到它们。我了解到我应该将内容文件放入用户文档文件夹中。我能够通过这段代码做到这一点。在VS安装程序中,我将内容文件安装到适当的路径,并在代码中引用该路径以进行任何读/写/复制。

private static string AppDir = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "GameMasters") + "\\";