2009-11-03 27 views
1

我的VB.NET 2008,.NET 3.5应用程序正在使用一个app.config,并将设置定义为User。正如预期的那样,它创建的文件夹:应用程序数据文件夹和公司名称带下划线

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

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

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

此目录中的其他文件夹都没有下划线,并且它看起来愚蠢。有没有什么办法可以告诉应用程序在名称中创建没有下划线的文件夹?

UPDATE(26-MAR-2012):

这似乎是更大的问题在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文件的位置。看起来我必须对公司名称进行硬编码,以便将所有内容保存到一个文件夹中,或者与两个文件夹一起使用。精彩......

+0

使用System.IO.Path.Combine()将目录与目录分隔符相关联。 – 2013-09-03 05:27:08

回答

2

LocalFileSettingsProvider类默认负责在.NET中存储配置设置。它似乎默认为所有托管应用程序加下划线 - 我在本地设置目录中的几个应用程序中看到它。如果您真的关心名称,您可以:

  1. 使用Changing the .NET application configuration file name中描述的技术问题。
  2. 创建您自己的SettingsProvider并使用正确的文件名。这听起来像是重新发明了轮子。
  3. 使用骆驼案件为您的公司名称。
0

我会用反射镜来检查代码多数民众赞成把_在那里摆在首位,看看它有什么IFS在它

+1

或学习喜欢_字符 – pm100 2009-11-10 22:32:31

0

请问您的公司名称有它的空间?我知道文件夹名称中的空格是完全可以接受的,但也可能是VB 2008试图有点太聪明,并且“将你从自己中解救出来”。

如果情况确实如此,请查看My Project\Settings.designer.vb文件。您可以在该处找到生成名称的代码,并且可以手动对其进行修改。我会检查一下自己,但是直到明天,我才能在VB 2008上复制一份。 :-)

+0

我们的公司名称确实有空格。 Settings.designer.vb中没有任何东西,只有我自己的设置。 AssemblyInfo.vb中的公司名称使用空格。没有运气,但搞清楚了这一点。 – HardCode 2009-11-11 16:57:10

0

AssemblyInfo.cs它对您的公司名称有什么影响?它是否有下划线?

相关问题