【问题标题】:Folder to store data files locally in WPF application在 WPF 应用程序中本地存储数据文件的文件夹
【发布时间】:2012-03-28 09:12:36
【问题描述】:

我目前在我的 WPF 应用程序中有以下代码,它完全符合我的要求,但是,在发布此代码后,它不一定能够访问这些文件夹位置,因为它们不会指向正确的目录也不会存在文件夹。

我希望有人能告诉我将某些内容保存到本地文件夹的最佳方法是什么?

它是否在应用程序文件夹本身也没有问题。

我目前用于编写文件的代码:

using (Stream stream = File.Open(@"..\..\Templates\data.bin", FileMode.Create))
            {
                BinaryFormatter bin = new BinaryFormatter();
                bin.Serialize(stream, templateList);
            }

我目前用于加载文件的代码:

using (Stream stream = File.Open(@"..\..\Templates\data.bin", FileMode.Open))
        {
            BinaryFormatter bin = new BinaryFormatter();

            templateList = (List<Template>)bin.Deserialize(stream);
        }

【问题讨论】:

标签: c# directory


【解决方案1】:

您可以使用 Environment.SpecialFolder 找到放置文件的合适位置(例如,ApplicationData 是一个很好的起点)。如果你只需要一个临时文件,你可以使用 Path.GetTempFileName 创建一个。

编辑:最后一点。将内容存储在应用程序文件夹本身可能是一件非常痛苦的事情。通常应用程序文件夹是在安装过程中使用管理员帐户创建的,因此您的应用程序在用户帐户上运行时将无法对其进行写入。

【讨论】:

  • 非常感谢马特。我已经使用了 Environment.SpecialFolder 并且只需执行一个简单的检查目录是否存在,如果不存在则创建新文件夹。全部完成!
【解决方案2】:

您可以使用System.Environment.SpecialFolder.LocalApplicationData 来存储特定于应用程序的数据:

using System;

class Sample 
{
    public static void Main() 
    {
          Console.WriteLine("GetFolderPath: {0}", 
                 Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData));
    }
}

参考:http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-27
    相关资源
    最近更新 更多