0

可以,然后呢。我将尽力解释这一点。

很明显,我一直在做一个程序。基本上,用户选择一个文件点击“替换”按钮,它会替换 AppData 文件夹中的文件。

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

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

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

我需要重命名并替换那个“file.txt”,但我不知道如何移动到那个目录,因为每个人的用户名都不一样。

4

1 回答 1

1

首先,您不需要在 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 下

编辑2

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

于 2013-07-13T17:49:20.280 回答