[英]How to copy file from one folder to another in C#?
我的项目中有一个备份文件夹和一个主文件夹。 我在主菜单中为用户提供了一个从备份文件夹中打开文件的选项。 为此,我编写了代码:
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调试文件夹中。 该Myproject文件夹中有backupfolder。 请协助解决。
如果使用相对路径而不是绝对路径,则在运行时基本文件夹是可执行文件所在的文件夹。 在调试模式下,它是bin / debug。
建议不要在程序目录中完全包含用户文件。 即,如果将程序安装在Windows Vista或7 programms文件夹中,则需要管理员权限才能写入此目录。
您应该看看Environment.SpecialFolder
。
string yourAppPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"YourApp");
这段代码将为当前用户生成一个路径,您可以在其中存储文件。
当您从Visual Studio运行程序时,它将被编译到项目的/bin/debug
子文件夹中,并从那里运行。 这也反映在应用程序内部的路径中。
您可以像将代码文件一样将文件添加到项目中,并在其属性中选择“ Copy to output directory: Copy if newer' to make sure that the file is present in the
bin / debug`文件夹中。 如果不想使其成为项目的一部分,可以选择将文件手动复制到那里。
在调试模式下,应用程序目录与可执行文件(.exe)目录相同。 因此,需要将backupfolder
添加到bin文件夹,但是它仅对您有效,并且在发布给某些用户之后,他们将无法捕获backupfolder
。
我认为一种解决方案是将要使用的文件的backupfolder
文件backupfolder
添加到Visual Studio项目中,然后将该文件的“不复制”选项设置为“始终复制”。 如果将backupfolder
包含在部署中,则可以确保发布后backupfolder
的路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.