Ich habe versucht, eine Möglichkeit zum Hochladen, Herunterladen und Löschen einer PDF-Datei zu erstellen. Der Upload und die Download-Funktion funktionieren einwandfrei, aber wenn ich versuche, das PDF zu löschen, funktioniert es nicht so, wie ich es möchte.
Es funktioniert, wenn ich dieses Formular verwende:
File.Delete(@"C:\Users\Donovan\1_Test.pdf");
Aber es funktioniert nicht, wenn ich das versuche:
File.Delete(@"~\1_Test.pdf");
Ich möchte einen Weg finden, wie die zweite Codezeile funktioniert, da ich in einem Team arbeite und wir nicht denselben Dateipfad verwenden.
6 Antworten
Versuche dies. Ich denke es funktioniert: D.
File.Delete(Server.MapPath("~/") + "1_Test.pdf");
Verwenden Sie Environment.GetFolderPath
, um das Home-Verzeichnis des Benutzers zu finden.
string home = Environment.GetFolderPath(Environment.SpecialFolder.UseProfile);
File.Delete(Path.Combine(home, "1_Test.pdf"));
Möglicherweise möchten Sie die Datei auch in den Ordner für temporäre Dateien legen. Sie finden diesen Ort mit Path.GetTempPath
. (Beachten Sie, dass Windows temporäre Dateien nicht automatisch bereinigt. Sie müssen also immer noch alles löschen, was Sie dort abgelegt haben, nachdem Sie damit fertig sind.)
Wenn Sie alle den Benutzerpfad verwenden, können Sie wie folgt vorgehen:
System.IO.File.Delete(
Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
"1_Test.pdf"
)
);
Sie können es leider nicht mit ~
zum Laufen bringen. Dies funktioniert nur als relativer Pfad für Webanwendungen.
Wir verwenden eine lokale Konfigurationsdatei für unsere Anwendung, in der jeder Entwickler seine eigenen Einstellungen speichert und diese unabhängig von anderen Entwicklern ändern kann.
Abhängig von Ihrer Anwendung (Web, Desktop, Mobile, Windows, Linux, was auch immer) können Sie ein Konfigurationsobjekt schreiben und es füllen oder d. H. Appsettings in web.config für diesen Zweck verwenden.
var basePath = Config.FileBase;
File.Delete(Path.Combine(basePath, "\1_Test.pdf"));
Eine andere Methode:
File.Delete(Environment.ExpandEnvironmentVariables("%USERPROFILE%\\1_Test.pdf"));
Haben Sie darüber nachgedacht, die * .pdf-Dateien in eine Datenbank zu stellen?
Neue Fragen
c#
C # (ausgesprochen "siehe scharf") ist eine statische Typisierungsprogrammiersprache mit mehreren Paradigmen, die von Microsoft entwickelt wurde. C # -Code zielt normalerweise auf die .NET-Tools und -Laufzeiten von Microsoft ab, zu denen unter anderem .NET Framework, .NET Core und Xamarin gehören. Verwenden Sie dieses Tag für Fragen zu Code, der in der formalen Spezifikation von C # oder C # geschrieben ist.