【问题标题】:Application Data Folder and Company Name With Underscores应用程序数据文件夹和带下划线的公司名称
【发布时间】:2012-03-27 00:47:49
【问题描述】:

我的 VB.NET 2008、.NET 3.5 应用程序正在使用一个 app.config,其设置定义为用户。正如预期的那样,它创建了文件夹:

C:\Documents and Settings\<user>\Local Settings\Application Data\<company name>\

在此文件夹中是应用程序存储用户设置的子文件夹。但是,公司名称的文件夹有下划线:

C:\Documents and Settings\<user>\Local Settings\Application Data\This__Is_My_Company\

此目录中的其他文件夹都没有下划线,看起来很愚蠢。有没有办法告诉应用程序创建名称中不带下划线的文件夹?

更新(2012 年 3 月 26 日):

这似乎是 Windows 7 上的更多问题(至少 - 也可能是 XP,但我已经退出 XP)。如果我使用 .NET Framework 创建文件夹(如果它不存在)...

Const TEST_FOLDER_PATH As String = "{0}\{1}"

Dim appDataFolderPath As String = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
Dim companyName As String = My.Application.Info.CompanyName

MessageBox.Show(String.Format(TEST_FOLDER_PATH, appDataFolderPath, companyName))

...然后它将生成一个文件夹路径没有公司名称中的下划线。奇怪的是,.NET 3.5 仍然在 \AppData\Local\ 中为用户的 app.config 设置创建自己的文件夹带有下划线。

我最终得到了一个带有下划线的文件夹,用于存放用户的 app.config 数据,还有一个没有下划线的文件夹,这样我就可以告诉第三方拼写检查器在哪里存储 user-dictionary.txt 文件。看起来我必须对公司名称进行硬编码才能将所有内容保存在一个文件夹中,或者使用两个文件夹。太棒了……

【问题讨论】:

  • 使用 System.IO.Path.Combine() 以目录分隔符附加目录。

标签: .net app-config


【解决方案1】:

LocalFileSettingsProvider 类默认负责在 .NET 中存储配置设置。默认情况下,它似乎为所有托管应用程序添加了下划线——我在本地设置目录的几个应用程序中看到了它。如果你真的很在意这个名字,你可以:

  1. 使用Changing the .NET application configuration file name 问题中描述的技术。
  2. 创建您自己的 SettingsProvider 并让它使用正确的文件名。不过,这听起来像是在重新发明轮子。
  3. 公司名称使用驼峰式。

【讨论】:

    【解决方案2】:

    我会使用反射器检查首先将 _ 放入其中的代码,看看它是否有任何 ifs

    【讨论】:

      【解决方案3】:

      您的公司名称中有空格吗?我知道文件夹名称中的空格是完全可以接受的,但可能是 VB 2008 试图变得有点过于聪明并“让你远离自己”。

      如果确实如此,请查看My Project\Settings.designer.vb 文件。您可能会在其中找到生成名称的代码并能够手动修改它。我会检查自己,但直到明天我才能拿到 VB 2008 的副本。 :-)

      【讨论】:

      • 我们的公司名称确实有空格。 Settings.designer.vb 中只有我自己的设置。 AssemblyInfo.vb 中的公司名称带有空格是正确的。还没有运气弄清楚这一点。
      【解决方案4】:

      AssemblyInfo.cs 中有什么适合您的公司名称?有下划线吗?

      【讨论】:

        猜你喜欢
        • 2010-11-01
        • 2020-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多