【问题标题】:(C#) Copying User Selected File To AppData Folder(C#) 将用户选择的文件复制到 AppData 文件夹
【发布时间】:2013-07-12 00:52:57
【问题描述】:

好的,所以。我将尽力解释这一点。

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

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

我一直在寻找,但似乎找不到我需要的东西……太糟糕了。

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

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

【问题讨论】:

    标签: c# replace copy rename


    【解决方案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 用户的路径,所以不用担心丢失其他用户的数据,您可以安全地将文件移动到该目录中

    【讨论】:

    • 好的,但是让我问这个。源路径将由用户选择,我该如何编码?然后目标路径是 appdata 中的一个文件夹,但每个人的用户都不同。我怎样才能访问那个特定的文件夹?
    • 以上代码将允许用户选择一个文件并将其复制到 AppData,您的第二个问题不清楚请提供更多信息您要替换哪个文件?
    • 我无法编辑我的评论。但是如何让它进入程序运行时已经创建的 AppData 文件夹下?使用你给我的代码。当点击“替换”按钮或退出程序时,文件需要删除或移动(可能已移动)。
    • 该目录将仅按需创建,当您调用 Application.UserAppDataPath 如果目录不存在时,它将创建一个。
    • @SriramSakthivel UserAppDataPath 是否允许访问子目录,以便它可以深入到最后一个目录并将目录替换为从源路径复制的目录?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 2013-04-04
    • 2023-03-03
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多