[英]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.