2009-05-18 6 views
0

Je veux choisir mon fichier XHTML dtd depuis un emplacement par défaut comme le dossier bin (où réside le fichier exe du projet) et non pas en le codant en dur en donnant le chemin exact du fichier comme C: \ temp \ xhtml1.dtd. Mon code est en C#. Quelqu'un peut-il aider à le faire?Comment choisir un fichier à partir de l'emplacement par défaut et non par codage?

+0

(re commentaire) - si vous utilisez uri, pourquoi donner un exemple dans la question qui utilise un chemin de fichier? Quelle est la configuration * réelle * ici? Est-ce une application web? Une application ClickOnce? Quelle? –

Répondre

0

Je pense que cela pourrait être ce que vous voulez?

string xhtml = Directory.GetCurrentDirectory()+"xhtml1.dtd"; 
+0

Cela donnera le répertoire de travail, qui peut être différent (et qui peut changer à l'exécution) –

+0

je n'utilise pas de chaîne mais uri. Comment pourrais-je ab faire la même chose pour uri? –

+0

merci ... c'est fait –

3

Une option consiste à utiliser la base de l'application:

string path = Path.Combine(
      AppDomain.CurrentDomain.SetupInformation.ApplicationBase, 
      "foo.dtd"); 
+0

J'utilise Uri et pas de chaîne alors quelle serait la syntaxe pour cela? –

+0

Si Uri est comme ceci Uri u = new Uri ("dtds/foo.dtd") vous pouvez remplacer la chaîne "foo.dtd" dans la réponse de @ Marc avec u.ToString(). Remarque: vous devez utiliser Uri relatif en tant que AppDomain.CurrentDomain.SetupInformation.ApplicationBase renverra le chemin absolu. – TheVillageIdiot

+0

Désolé, en utilisant u.ToString() comme je l'ai mis dans le dernier commentaire donnera une chaîne drôle comme C: \ temp \ test \ bin \ dtds/foo.dtd vous devriez essayer Path.Combind (Appdomain ....., string.Join (@ "\", u.Segments)) – TheVillageIdiot

Questions connexes