Wie man Datei-Pfad vom Ordner wpf?
Ich habe ein Problem, ich entwickle eine WPF-Anwendung, wo ich eine Seite mit dem Namen "Hilfe" einen button gehen
Wenn Benutzer auf diese Schaltfläche klickt, die ich habe, pdf-Datei, um die Benutzer in den Hilfe-Ordner.
Nun mein problem ist, wenn ich Schreibe wie hier-ein Pfad
**string pdfurl1 = ((@"D:\addnkit\projects\wdine\widdne_working\Wdine Us\Wddine\Wine\Help\Emerald Wine Dispensing Software.pdf"));
System.Diagnostics.Process.Start(pdfurl1);**
Seine Arbeit erfolgreich
aber ich weiß, das wird nicht funktionieren in anderen pcs-ich möchte wissen, wie kann ich code schreiben, der für die gleichen, die ausgeführt werden kann auf jedem PC
Ich habe auch versucht, wie diese
(@"pack://application:,,,/Widne;component/help/mypdf.pdf"
Sondern seine nicht funktioniert
[Aktualisiert]
Ich habe versucht, alle Lösungen, sondern seine nicht funktioniert, aber ich weiß nicht, warum?
bitte überprüfen Sie noch einmal
Widne >> Hilfe >> mypdf
- In welchem Ordner ist dein .exe-in?
- die Widne in Ihre exe-Verzeichnis ?
- Überprüfen Sie meine aktualisierte Antwort @Akrem
- dieses Verzeichnis existieren, in uour debug-Verzeichnis ? sind Sie dieses Verzeichnis in Ihrem Projekt ?
- Nein, ich bin nicht zeigen Ihnen die debug-Verzeichnis ja dieses Verzeichnis ist in ein Haupt-Projekt
- dieses Verzeichnis existieren, in uour debug-Verzeichnis ? diese Frage, um zu wissen, dass, wenn dieses Verzeichnis helfen wird erstellen Sie in mit der exe-Datei im selben Verzeichnis ?
- Ja, das erstellen dieser Ordner in meinem Verzeichnis debug sehe ich es aber diese pdf-Datei nicht vorhanden ist
Du musst angemeldet sein, um einen Kommentar abzugeben.
verwenden Sie den Pfad Ihrer exe -
Update :
befor opning die Datei muss er vorhandene, in diesem Fall stellen Sie die Eigenschaft, um Ihre PDF-Datei
Copy to Output Directory
zuCopy always
Die 2. Methode
packuri
ist, was Sie verwenden sollten.Dein problem ist sehr wahrscheinlich, dass Ihr
mypdf.pdf
haben muss, um es geänderten Eigenschaften in Visual Studio, so dass es eigentlich Kopien der pdf-Datei, wenn gebaut und nicht einbetten in der Anwendung verhindern Sie die end-user vom Lesen der pdf-Datei.Diese Eigenschaften auf die pdf-Datei und erstellen Sie die Anwendung neu
Edit: Schau diese Antwort für eine Erklärung der Build-Aktion.
Den
Diagnostics.Process
Klasse hat nichts zu tun mit WPF. Wenn der Pfad relativ zu Ihrer Anwendung, können Sie relative Pfade verwenden. Wenn Sie befürchten, dass die Anwendung ausgeführt wird, mit einem funktionierenden anderen Verzeichnis in das Verzeichnis, in dem die assembly gespeichert ist, können Sie die Abfrage der original-Ordner die Montage mitKonstrukt und den Pfad zu der PDF-Datei mit
Path.Combine
.string path = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"PrintTemplates\Promotions\images\promotion1.png");
Könnten Sie einen relativen Pfad verwenden:
EDIT:
Vorausgesetzt, Ihr .exe im bin-Ordner:
Können Sie
Directory.GetCurrentDirectory()
. Geben Sie das Verzeichnis, aus dem die Anwendung gestartet wurde. Also, wenn Sie Ihre Datei, in dem die Anwendung gestartet wurde, es wäre so etwas wie dieses:Vielleicht die Antwort von hier kann Ihnen helfen,
Verwenden Sie die Pfad Klasse zu bauen, bis Sie Ihre Wege. Es wird das richtige tun.
Für Verzeichnis-Dialog, um den Pfad des Verzeichnisses, Ersten Add-reference-System.Windows.Formen und anschließend zu Beheben, und setzen Sie dann diesen code in einen button-Klick.
(folderpathTB ist der name der TextBox, wo ich wana legte den Ordner Weg, ODER u zugewiesen werden kann, um eine string-variable zu dh)
Und wenn Sie wana get Dateiname/Pfad, Einfach hierzu auf den Button Klicken
(folderpathTB ist der name der TextBox, wo ich wana setzen Sie den Pfad der Datei, ODER u zugewiesen werden kann, um eine string-variable zu)
Hinweis: Für den Ordner-Dialog, der System.Windows.Forms.dll muss dem Projekt Hinzugefügt werden, da es sonst nicht funktionieren würde.
Können Sie auch versuchen, mit diesem code:
Und ändern Sie die build Art Ihrer Inhalte: