Ich habe ein Stück Code, der meine verarbeitete Datei an einem Speicherort speichert. Wenn sich in dieser Datei Daten befinden, die Unterverzeichnisse oder Dateien sind, wird das Verzeichnis zuerst gelöscht und die verarbeitete Datei wird dort gespeichert. Wenn ich nun den Pfad als C: \ gebe, werden alle Daten in Laufwerk C: \ gelöscht. Ich will das nicht. Ich möchte überprüfen, ob der angegebene Speicherort die Partition der Partition C: \ oder D: \ ist und nicht gelöscht werden sollte. Kann mir jemand die Syntax sagen?Ich möchte eine Überprüfung, die nicht löscht meine Laufwerke C: und D: Laufwerk auf meinem Computer
Antwort
Wenn das erste Zeichen ein Buchstabe ist und das zweite Zeichen ein Doppelpunkt ist und die Länge der Zeichenfolge 2 oder 3 ist, verbieten Sie es.
EDIT: Oder einfach auf den Doppelpunkt und die Länge überprüfen. Ein weniger überprüfen.
Das einzige Problem ist, wenn Sie diese Art von Funktionalität auf ein F-Laufwerk sagen möchten, weil es ein Thumb-Laufwerk, mit dem Sie es verwenden möchten und es löschen. – SteveM
Das stimmt. Ich nehme an, Sie könnten eine "sichere Liste" erstellen, d. H. Es ist in Ordnung, das F-Laufwerk zu beenden. –
string partition = "C:\\";
DirectoryInfo di = new DirectoryInfo(partition);
if (di.Root.ToString() == partition)
{
// this is the root directory
}
Wenn Sie eine Variable file
, die Ihren Dateinamen hält Sie so etwas tun könnte:
using System.Linq;
string file = "c:\filename.txt";
FileInfo fileInfo = new FileInfo(file);
if (Directory.GetLogicalDrives().Contains(fileInfo.DirectoryName))
{
// File is in root of drive
}
else
{
// File is in a sub-folder
}
(Dies wurde für „Intellisense-Qualität“ getestet, dh es kompilieren sollte, aber es vielleicht nicht zu 100% korrekt ausgeführt, so wenden Sie sich bitte testen, bevor Sie sich entscheiden, es zu benutzen.)
Sie können alle logischen Laufwerke auflisten und einfach überprüfen, ob die zur Verfügung gestellt savepath mit einem der Wurzel drivepaths entspricht
Sie sollten es nicht so machen. Sie sollten c ode access security verwenden, um Ihre Anwendung so einzuschränken, dass sie nur auf die Verzeichnisse zugreifen kann, auf denen sie arbeiten soll. Schauen Sie sich die FileIOPermissionAttribute. Hier ist an example der Dateirechte einer Anwendung beschränken (es ist ein ASP.NET-Beispiel, aber das Konzept ist ähnlich).
Sie sollten Ihre Anwendung auch unter einem Benutzerkonto ausführen, das nicht über hohe Rechte verfügt. NTFS-Zugriff auf Dateispeicherorte, von denen nicht gelöscht werden soll.
Ist das möglicherweise nicht möglich, wenn diese Anwendung auf dem Computer eines Clients ausgeführt wird? Der Kunde möchte möglicherweise die (sehr angemessenen) korrekten Zugriffsberechtigungen für seine Benutzer nicht haben, und daher kann es eine gute Strategie sein, einen "Gürtel und Zahnspange" Ansatz zur Prävention zu haben. –
Wenn Sie wirklich besorgt über die Klasse von Plattenlaufwerk sind Sie zu schreiben (z nur auf Wechselmedien schreiben), dann ist hier eine Antwort auf diese How to get the list of removable disk in c#?
- 1. Beschränkung der Benutzer auf C-Laufwerk in C# zuzugreifen?
- 2. Warum funktioniert meine Ajax-Anwendung nicht auf meinem lokalen Computer?
- 3. Ich möchte auf einem anderen Computer eine gespeicherte Cookie in meinem Desktop verwenden, um eine Webseite
- 4. Wie finde ich heraus, von welchem Laufwerk meine Exe läuft?
- 5. Ich kann eine VISIO-.vsd-Datei auf meinem C-Laufwerk von Visual Studio nicht speichern?
- 6. Programmcode löscht die Daten, die ich behalten möchte
- 7. Wie erhalte ich eine bestimmte Pull-Anforderung auf meinem Computer?
- 8. Kann ich eine Sharepoint-Site auf meinem lokalen Computer erstellen?
- 9. Kann fuslogvw.exe auf meinem Computer nicht finden
- 10. Identifiziertes zugeordnetes Laufwerk von lokalem Laufwerk
- 11. API-Anfragen funktioniert nicht auf meinem Computer, aber die anderen
- 12. Ich kann my.cnf nicht auf meinem Windows-Computer finden
- 13. Remote Freigegebene Ordner und Laufwerke C#
- 14. Applescript neue Laufwerke erkennen
- 15. Installieren Sie Visual Studio 2008 SP1 auf "D" Laufwerk
- 16. Warum die USACO akzeptieren Grader nicht meine Lösung „Prime Cryptarithm“? (Output Unterschied zwischen meinem Computer und dem Online-grader)
- 17. Makro löscht, was ich behalten möchte
- 18. C#: Erstellen Sie ein virtuelles Laufwerk in Computer
- 19. Wie installiere ich sqlite3 auf meinem Windows 10 Computer?
- 20. Ich möchte eine benutzerdefinierte Domain auf meine Azure-Website bringen
- 21. Schreiben an c: \ auf einem anderen Computer
- 22. Ich möchte eine Socket-Bibliothek von meinem Server-Socket verbinden?
- 23. Wie übertrage ich meine MySQL-Datenbank auf einen anderen Computer?
- 24. Eine Laufwerks-API zum Auflisten aller Laufwerke für ein Geschäftskonto mit einem Laufwerk funktioniert nicht?
- 25. C# - Ich möchte eine Methode, die eine Liste erstellen oop
- 26. Wie führe ich eine Rails-Anwendung auf einem anderen Computer aus, während ich noch auf meinem eigenen Computer arbeite?
- 27. AES Java auf USB-Laufwerk funktioniert nicht
- 28. C++ Überprüfung auf eine ganze Zahl.
- 29. Wie kann ich die Version des auf meinem Computer installierten Windows SDK ermitteln?
Sie nicht Ihr Programm als Administrator ausführen. – grawity
Der Programmierer hat keine Wahl in dieser Angelegenheit. Wenn der Benutzer über Administratorrechte verfügt, wird das Programm als Administrator ausgeführt. –