Je travaille sur une application qui enregistre un fichier dans Path.GetDirectoryName(FilePath)
où FilePath = Application.ExecutablePath
qui contient des informations sur la licence. Si j'exécute le programme à partir de VS cela fonctionne bien mais si je fais un installeur et que je l'installe, puis l'exécute, le programme pense que le fichier existe déjà. J'ai changé mon programme pour montrer sur une boîte de message mon FilePath
et si File.Exists(FilePath)
renvoie true
ou false
. J'ai donc regardé dans ce chemin, activé montrant les fichiers cachés et système, F5'd plusieurs fois et rien. Le fichier n'existe pas, mais File.Exists(FilePath)
renvoie la valeur true. Une idée de pourquoi cela se passe-t-il et comment puis-je contourner ce problème? J'utilise Windows Vista, Visual Studio 2010, C# et créé mon programme d'installation avec le projet d'installation de VS.File.Exists true true pour un fichier qui n'existe pas
Edit: Mon chemin est: C: \ Program Files (x86) \ hélium \ License.xml.
Cela fait partie de mon code:
MessageBox.Show("LicenseFileName: " + LicenseFileName); // LicenseFileName: C:\Program Files (x86)\Helium\License.xml
System.Diagnostics.Process.Start(LicenseFileName); // Nothing happens
MessageBox.Show("File.Exists(LicenseFileName): " + File.Exists(LicenseFileName)); // File.Exists(LicenseFileName): true
a oublié de dire que j'avais déjà l'application installée avant que le fichier utilisé pour exister. J'ai désinstallé en utilisant le Panneau de configuration.
Est-ce un chemin absolu ou un chemin relatif? Nous montrer le chemin réel peut aider aussi. – bblack
Essayez d'ouvrir le fichier via Run. Cela pourrait être super caché. En outre, je recommande de ne pas utiliser Windows Vista - pour quoi que ce soit. –
Est-ce que vous dites littéralement 'FilePath = Application.ExecutablePath; File.Exists (FilePath);'? Un exemple de code plus complet serait utile ici. – Sorpigal