(C#)将用户选择的文件复制到AppData文件夹

时间:2013-07-13 17:28:08

标签: c# replace copy rename

好的,好的。我会尽力解释这个问题。

显然,我一直在研究一个程序。基本上,用户选择一个文件命中"替换"按钮,它将替换AppData文件夹中的文件。

好吧,我得到了如何为我的程序创建一个AppData文件夹。 基本上,我想要做的是先取出所选文件(通过打开文件对话框)并复制到我为其创建的AppData。然后我需要重命名文件并将文件复制到另一个文件夹。

我一直在寻找,似乎无法找到我需要的东西......这很糟糕。

编辑: 我的第二个问题。假设用户选择" myfile.txt" AppData中的文件夹位于" ... / Roaming / thefiles / file.txt"

我需要重命名并替换" file.txt",但我无法弄清楚如何移动到该目录,因为每个人的用户名都不同。

1 个答案:

答案 0 :(得分:0)

首先,您不需要在AppData中创建一个文件夹,它随时可用。

File.Copy(sourcepath,destinationpath); can be used for this purpose

http://msdn.microsoft.com/en-us/library/cc148994.aspx检查一下。

使用Application.UserAppDataPathApplication.CommonAppDataPath访问您计划的应用数据文件夹。

你可以调用File.Copy(sourcepath,Path.Combine(Application.UserAppDataPath,“yourfile.ext”));

修改

我知道你的意思是登录系统的用户

using (OpenFileDialog fd = new OpenFileDialog())
        {
            if (fd.ShowDialog() == DialogResult.OK)
            {
                string fullFileName = fd.FileName;
                string fileNameWithExt = Path.GetFileName(fullFileName);
                string destPath = Path.Combine(Application.UserAppDataPath, fileNameWithExt);
                File.Copy(fd.FileName, destPath);
            }
        }

上面的代码会将所选文件复制到属于登录用户的程序的AppData路径,例如:如果您以user1身份登录到Windows,则会在user1的AppData下复制

EDIT2

如果没有弄错,那么Application.UserAppDataPath将始终提供当前登录的Windows用户的路径,因此无需担心丢失其他用户的数据,您可以安全地移动该目录中的文件