2009-11-03 2 views
1

Mon VB.NET 2008, l'application .NET 3.5 utilise un app.config avec les paramètres définis comme utilisateur. Comme prévu, il a créé le dossier:Dossier d'application et de données Nom de la société par des underscores

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

Dans ce dossier sont les sous-dossiers pour l'application pour stocker les paramètres utilisateur. Cependant, le dossier du nom de l'entreprise a underscores:

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

Aucun des autres dossiers dans ce répertoire ont underscores, et il semble stupide. Est-il possible de dire à l'application de créer le dossier sans caractères de soulignement dans le nom?

MISE À JOUR (26 mars 2012):

Cela semble être plus d'un problème sur Windows 7 (au moins - pourrait être XP aussi, mais je suis déjà hors XP). Si j'utilise le .NET Framework pour créer le dossier si elle n'existe pas ...

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)) 

... il produira un chemin de dossier sans le nom contient de l'entreprise. Curieusement, .NET 3.5 crée toujours son propre dossier dans \ AppData \ Local \ pour les paramètres de app.config de l'utilisateur avec underscores. Je finis avec un dossier avec des traits de soulignement pour les données app.config de l'utilisateur, et un dossier sans underscores ainsi je peux dire à notre vérificateur d'orthographe tiers où stocker le fichier user-dictionary.txt. On dirait que je vais devoir coder en dur le nom de l'entreprise afin de tout garder dans un seul dossier, ou vivre avec deux dossiers. Magnifique ...

+0

Utilisez System.IO.Path.Combine() pour attacher des répertoires avec le séparateur de répertoire. –

Répondre

2

La classe LocalFileSettingsProvider est responsable par défaut pour le stockage des paramètres de configuration dans .NET. Il semble mettre en underscore pour toutes les applications gérées par défaut - je le vois dans plusieurs applications dans mon répertoire de paramètres locaux. Si vous êtes vraiment préoccupé par le nom, vous pouvez:

  1. Utilisez la technique décrite dans la question Changing the .NET application configuration file name.
  2. Créez votre propre SettingsProvider et avoir le droit d'utiliser le nom de fichier. Cela ressemble à réinventer la roue si.
  3. Utilisez camel-case pour le nom de votre entreprise.
0

i utiliserais réflecteur pour inspecter le code thats mettre le _ là en premier lieu et de voir si elle a obtenu des ifs en elle

+1

ou apprendre à aimer les _ caractères – pm100

0

Votre nom de l'entreprise ont des espaces en elle? Je sais que les espaces dans les noms de dossiers sont parfaitement acceptables, mais il se peut que VB 2008 essaie d'être un peu trop intelligent et de vous «sauver de vous-même».

Si cela se révèle être le cas, un coup d'oeil dans le fichier My Project\Settings.designer.vb. Vous pouvez trouver le code qui génère le nom et être capable de le modifier manuellement. Je vérifierais moi-même, mais je ne peux pas mettre la main sur une copie de VB 2008 jusqu'à demain. :-)

+0

Notre nom de l'entreprise a des espaces. Rien que mon propre paramètre dans Settings.designer.vb. Le nom de l'entreprise dans AssemblyInfo.vb est correct avec des espaces. Pas de chance encore de comprendre cela. – HardCode

0

Dans le AssemblyInfo.cs ce-t-il pour vous le nom de l'entreprise? A-t-il les traits de soulignement?

Questions connexes