【问题标题】:How to set default value of a directory path as a project setting如何将目录路径的默认值设置为项目设置
【发布时间】:2016-02-02 18:07:34
【问题描述】:

在一个winform C#项目中,我在项目设置中添加了HomeDir作为目录路径。我想将其初始值设置为Documents 文件夹。这个目录不是一个常量字符串,所以我不能在设置对话框和Settings.Designer.cs中使用它,比如:

[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute(System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments))]
    public string HomeDir 
    {
        get 
        {
            return ((string)(this["HomeDir"]));
        }
        set 
        {
            this["HomeDir"] = value;
        }
    }

会报如下错误:

错误1 属性参数必须是属性参数类型的常量表达式、typeof表达式或数组创建表达式

【问题讨论】:

    标签: c# winforms settings default


    【解决方案1】:

    好吧,如果Settings 中没有设置HomeDir(或路径不存在),请使用:

    string docs = System.Environment.GetFolderPath(System.Environment.SpecialFolder.MyDocuments);
    

    获取Documents文件夹完整路径

    【讨论】:

    • 请阅读我的问题的更新,我可以使用一个常量作为默认值
    • @Ahmad,我不认为你应该在配置中设置默认值,因为用户Documents 没有好的默认值。以"" 为例,在代码中使用HomeDir 值之前,检查它是否为空或存在,如果不存在:则使用System.Environment.GetFolderPath(...)
    • 谢谢,现在我明白你的意思了!我必须检查它是否为空。
    • @Ahmad,很好。还可以考虑简单检查Directory.Exists(HomeDir)。以防万一
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    相关资源
    最近更新 更多