2017-10-11 1 views
0

Ich bin neu und ich versuche, eine Datei zu öffnen. Hier ist Code:URI-Formate werden nicht unterstützt Ausnahme

string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); 
string filenamelocation = System.IO.Path.Combine(path, "Fix_DeltaPro.exe"); 
System.Windows.MessageBox.Show(""+filenamelocation+""); 
using (FileStream stram = File.Open(filenamelocation, FileMode.Open)) ; 

aber haben wenig Fehler: "URI-Formate nicht unterstützt werden" Helfen Sie mir bitte :)

+0

ich meinte, was nicht der String aussehen, können Sie es log (etwas empfindlich entfernen)? – msanford

+0

Datei: \ C: \ Benutzer | dimitar.grudev \ Dokumente \ Visual Studio 2015 'Projekte \ Hilfsprogramm \ Hilfsprogramm \ bin \ Debug \ Dateiname.exe – spootles

Antwort

3

The CodeBase ist ein Uri, wo die Versammlung gefunden wurde. This can a file file://, a web location http://, or other locations.

In der Instanz einer Datei erhalten Sie die AbsolutePath für den Uri.

var codeBaseUri = new Uri(Assembly.GetExecutingAssembly().CodeBase); 
var path = Path.GetDirectoryName(codeBaseUri.AbsolutePath); 
var filenamelocation = Path.Combine(path, "Fix_DeltaPro.exe"); 

MessageBox.Show(filenamelocation); 
using (var stream = File.Open(filenamelocation, FileMode.Open)) ; 

Da die CodeBase aus Differenz Orten geladen werden verwenden, um die Assembly.Location den Standort zu erhalten, wo die Montage von der Festplatte geladen wurde. auch

var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); 
var filenamelocation = Path.Combine(path, "Fix_DeltaPro.exe"); 

MessageBox.Show(filenamelocation); 
using (var stream = File.Open(filenamelocation, FileMode.Open)) ; 

Siehe:

+0

"Konnte einen Teil des Pfades nicht finden' C: \\ Benutzer \\ dimitar.grudev \\ Dokumente \\ visual% 20studio% 202015 \\ Projekte \\ Helfer \\ Helfer \\ bin \\ Debug \\ Fix_DeltaPro.exe ' – spootles

+0

@spootles: Das scheint ein angemessener Ort für, wo Ihre ausführende Assembly ist Sind Sie sicher, dass "Fix_DeltaPro.exe" tatsächlich an der gleichen Stelle ist? – Chris

+0

Ja, aber ich schreibe mit Fehlern.Vielen Dank, es funktioniert! – spootles

Verwandte Themen