我的项目中有备份文件夹和主文件夹。我在主菜单中为用户提供了一个选项,可以从备份文件夹中打开文件。为此,我写了代码:
string[] paths;
string fullpath = "";
paths = Directory.GetFiles(backuppath);
foreach (string backupfilepath in paths)
{
if (path.EndsWith(".txt"))
fullbackupfilepath = backupfilepath;
}
这里backuppath是备份文件的路径。 现在我将这个备份文件复制到主项目文件夹中:
File.Copy(fullbackupfilepath, mainprojectfilepath);
但我收到无法找到文件C:\ Users \ me \ Desktop \ csharpproject \ bin \ debug \ BackupProject.txt
的错误当我的项目在MyDocuments \ Myproject中时,为什么它会进入bin debug文件夹。此Myproject文件夹中有备份文件夹。 请帮助解决。
答案 0 :(得分:1)
如果使用相对路径而不是绝对路径,则在运行时基础文件夹是可执行文件所在的文件夹。在调试模式下,它是bin / debug。
根本不建议在程序目录中包含用户文件。即如果您在Windows Vista或7 programms文件夹中安装程序,则需要管理员权限才能写入此目录。
你应该看看Environment.SpecialFolder
。
string yourAppPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"YourApp");
这段代码将为当前用户生成一个路径,您可以在其中存储文件。
答案 1 :(得分:0)
当您从Visual Studio运行程序时,它会被编译到项目的/bin/debug
子文件夹中,并从那里运行。这也会反映在应用程序内部的路径中。
您可以像处理代码文件一样将文件添加到项目中,并在其属性中选择Copy to output directory: Copy if newer' to make sure that the file is present in the
bin / debug`文件夹。您可以选择手动复制该文件,如果您不想将其作为项目的一部分。
答案 2 :(得分:0)
在调试模式下,应用程序目录与可执行文件(.exe)目录相同。因此,需要backupfolder
添加到bin文件夹,但它仅对您有效,并且在发布给某些用户后,他们无法捕获backupfolder
。
我认为其中一个解决方案是将要使用的backupfolder
文件添加到visual studio项目中,然后将该文件的“不复制”选项设置为“始终复制”。如果部署中包含backupfolder
,则可以确保在发布后backupfolder
的路径。