2013-07-26 5 views
1

Salut j'ai juste eu un tel problème ici. J'essaie d'utiliser un chemin relatif pour lier à un fichier Excel dans le même répertoire du fichier exe lui-même.
Lorsque j'utilisechemin relatif d'Excel pour C#

Excel.Workbook wkbook = exapp.Workbooks.Open(@".\test.xlsx"); 

Je mets mon fichier exe dans le lecteur f. Il s'est avéré que le fichier exe a modifié le fichier test.xlsx dans le dossier C: \ Users \\ Documents (et il a créé le test.xlsx lui-même). Cependant, lorsque j'utilise ". \ Xx.txt" ou "xx.txt", cela fonctionne parfaitement.

Quelqu'un peut-il me dire quoi faire? Je vous remercie.

Répondre

3

Pour obtenir un filepath par rapport à l'exécution exe, vous pouvez actuellement utiliser les éléments suivants:

string exeDir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); 
Excel.Workbook wkbook = exapp.Workbooks.Open(System.IO.Path.Combine(exeDir, "test.xlsx")); 
+0

Merci, je suppose que cela résout mon problème. –

0

Une solution serait: ne pas utiliser des chemins relatifs. Voici un code pour définir explicitement le chemin:

var executableFolderPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); 
Excel.Workbook wkbook = exapp.Workbooks.Open(executableFolderPath + @"\test.xlsx"); 
+0

Merci beaucoup! Mais puis-je demander pourquoi il y a la différence entre Excel et le fichier texte? –