Process.Start(Explorer) findet angeblich Datei nicht

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ThomasG82.

    Process.Start(Explorer) findet angeblich Datei nicht

    Moin,

    ich öffne oder besser will ein Explorer Fenster öffnen und eine Datei markieren. Dazu nutze ich ganz normal den process.start. Allerdings sagt mir der Explorer, dass die Datei nicht vorhanden ist obwohl sie genau dort ist wo sie sein soll.
    Hab ich hier irgendwie einen Fehler drin?

    VB.NET-Quellcode

    1. Process.Start("explorer /e,/select," & Path.Combine(Pfad_Ziel, GPO_DateiName))


    Pfad_Ziel und GPO_DateiName sind meine eigenen Variablen und ergeben auch genau das Ergebnis was ich erwarte.
    Wenn ich sie zusammen ausgeben lasse erhalte ich genau den Pfad und Dateinamen und kann dies auch kopieren und im Explorer aufrufen.
    Hinweis: Ich bin auch als ADMIN unterwegs und es liegt nicht am Verzeichnis, selbst ein einfaches wie G: (meine zweite Festplatte) kann er nicht öffnen. Ohne Datei geht es

    Ziel ist es ein Explorer Fenster zu öffnen in dem die angegebene Datei gleich markiert ist. Oder geht dies gar nicht mehr?
    @ThomasG82 Ich kann Deinen Fehler reproduzieren.
    Ich nehme mal an, dass die Syntax des Explorer-Aufrufs nicht stimmt.
    Was soll das machen?
    Wo hast Du die Information har?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hab den Fehler gefunden:

    Richtig geht es so:

    VB.NET-Quellcode

    1. ​Process.Start("explorer", "/e,/select," & Path.Combine(Pfad_Ziel, GPO_DateiName))


    "explorer" ist FileName und "/e,/select," & Path.Combine(Pfad_Ziel, GPO_DateiName) ist Arguments.

    Ich hatte keine Trennung
    Vermute mal das...

    VB.NET-Quellcode

    1. Process.Start("explorer", "/e,/select," & " " & Path.Combine(Pfad_Ziel, GPO_DateiName))

    eher funktionieren könnte.

    Übersichtlicher wird es mit

    VB.NET-Quellcode

    1. ProcessStartInfo


    Gruß Robert
    Komma als Separator reicht völlig, dies hier funktioniert:

    VB.NET-Quellcode

    1. Process.Start("explorer", "/e,/select,c:\temp\Test.pdf")
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Naifu - ja könnte man machen aber dann hau ich mir wieder unnötig Zeilen Code ins Programm.
    Mein Fehler war ja wirklich nur der Trenner (,) und ja man sieht es halt genau wenn man Arguments und FileName ordentlich von ein andern trennt. Aber in dem Fall bleibe ich bei der kurzen Variante und spare mir die Code Zeilen