10
votes

Environnement.CurrentDirectory en C # .NET

La propriété environnement.CurrentDirectory code> renvoie toujours le chemin du répertoire système à mon répertoire d'applications. Dans le PC de mon collègue, il renvoie le répertoire d'applications.

Quel est le problème? Comment puis-je le résoudre? P>

Le code suivant fonctionne pour moi p> xxx pré>

Le code suivant ne fonctionne pas pour moi p>

ePCRSettings = XMLParser.XmlParser.Deserialize<PCRGeneratorSettings>(string.Format("{0}\\ePCRPDFSettings.xml", Environment.CurrentDirectory));

Environment.CurrentDirectory - Returns c:\windows\system32.


3 commentaires

Ajoutez quelques informations supplémentaires ... peut-être un extrait de code et expliquant ce que vous essayez de faire serait vous aider à obtenir une réponse.


Est-ce une application Windows Formulaires?


C'est une bibliothèque de classe. Mais peut être utilisé dans les applications VB 6 et ASP.NET


4 Réponses :


1
votes

Je soupçonne que cela pourrait avoir quelque chose à voir avec l'ID utilisateur actuel que l'application est exécutée sous, par exemple si vous exécutez l'application dans une session utilisateur (par exemple, débogage dans VS), alors cela peut renvoyer votre répertoire actuel, Mais si vous l'exécutez sous IIS, cela pourrait être pourquoi il est défectueux du dossier système?


0 commentaires

3
votes

Vous ne devriez pas utiliser la valeur Environnement.CurrentDirectory comme base pour les recherches de fichier car elle peut changer et ne pas toujours être sous votre contrôle. par exemple. Un fichier enregistrer sur un autre dossier peut modifier la valeur "Dossier actuel". Comme vous pouvez le constater, cela peut produire des résultats imprévisibles.

Utilisez une valeur que vous pouvez contrôler mieux. par exemple. Une valeur de FileFolderPatherPath dans un fichier de configuration (XML?) mis à jour lorsque vous installez votre application.


0 commentaires

14
votes

Définir le répertoire actuel xxx


0 commentaires

7
votes

utiliser

System.IO.Path.getDirectoryName (System.Reflection.assembly.Bettentryassembly (). Emplacement);


0 commentaires