2013-08-15 14 views
5

Ich möchte den Ordner öffnen, in dem eine Datei gerade gespeichert wurde, und wählen Sie die Datei, für die ich benutze diesen kleinen Code:Ordner öffnen Ausgabe

var psi = new ProcessStartInfo("Explorer.exe", "/select," + dlg.FileName); 
       Process.Start(psi); 

Es funktioniert perfekt.

Ich brauche an mehreren Stellen diesen Code eingeben, damit ich ein Verfahren zu schaffen entschieden, gibt es auch eine Bedingung in dieser Methode ist:

private static void OpenFolderAndSelectMyFile(string fileName) 
{ 
    if (MySettings.Default.openFolder == true) 
    { 
     var psi = new ProcessStartInfo("Explorer.exe", "/select," + fileName); 
     psi.WindowStyle = ProcessWindowStyle.Maximized; 
     Process.Start(psi); 
    }  
} 

Dies als nicht erwartet: Dies öffnet den übergeordneten Ordner (des Ordners, der meine Datei enthält). Es wählt auch den Ordner aus.

Warum dieser Unterschied im Verhalten und wie man es löst?

+5

Haben Sie den übergebenen Dateinamen überprüft? –

+2

Können Sie den Anrufcode auch posten? –

Antwort

3

Der einzige Weg, dies zu tun, ist fileName ist nicht, was es in Ihrem ursprünglichen Code war. Der Code ist genau derselbe und würde wie erwartet funktionieren, wenn fileName in der Tat war, was es in der ursprünglichen Codestelle war.

Es ist wahrscheinlich, dass fileName jetzt tatsächlich der vollständige Pfad zum Ordner und nicht der vollständige Pfad zur Datei einschließlich des Dateinamens ist.

+2

Sie haben recht, ich habe eine geänderte Saite übergeben. Jetzt funktioniert es richtig. – Sturm

Verwandte Themen