Wenn ich versuche, eine Datei zu löschen, aber gleichzeitig ein anderer Prozess eine Datei.Exists (...) für dieselbe Datei ausführt, wird dies möglicherweise die Datei sperren und dazu führen, dass mein Prozess fehlschlägt?Wird beim Aufruf einer Datei.Exist eine Datei gesperrt?
Antwort
Nein, File.Exist() überprüft nur, ob sich die fragliche Datei im angegebenen Pfad im Dateisystem befindet. Es greift in keinem Fall auf die Dateidaten oder Header zu, sodass die Datei nicht gesperrt wird.
Eine Randnotiz, sogar das Öffnen einer Datei wird es nicht unbedingt sperren. Dies hängt von den Zugriffsparametern ab, die Sie beim Öffnen auswählen.
Nein, File.Exist sperrt die Datei nicht. Eine gute Möglichkeit zu sehen, was unter der Decke passiert, ist jedoch durch die source code zu sehen.
Ziehen Sie den Quellcode für die .Net Framework-Basisklassenbibliotheken herunter und sehen Sie sich an, was hinter den Kulissen passiert. Insbesondere die System.IO.File-Klasse bietet einige sehr interessante Standardeinstellungen für Dateibearbeitung, Sperren, Freigeben usw. In Fällen wie der Ihren kann es sehr hilfreich sein, die Quelle dessen zu sehen, was sich hinter den Kulissen abspielt Sie gestalten Ihre Anwendung.
Per Link:
Was kann ich mit der Shared Source CLI tun? Es gibt eine Fülle von Programmiersprachen-Technologie in der Shared Source CLI. Es ist wahrscheinlich von Interesse für ein breites Publikum zu sein, darunter:
- Entwickler interessieren sich für die internen Abläufe des .NET Framework diese Implementierung der CLI erkunden, um zu sehen, wie Garbage Collection funktioniert, JIT-Kompilierung und Verifikation behandelt, Sicherheitsprotokolle implementiert und die Organisation von Frameworks und virtuellen Objektsystemen.
- Lehrer und Forscher arbeiten mit fortgeschrittener Compiler-Technologie. Forschungsprojekte zu Spracherweiterungen, JIT-Optimierungen und moderner Garbage Collection basieren alle auf der Shared Source CLI. Moderne Compiler-Kurse können auf den am CLI implementierten C# - oder JScript-Sprachen basieren.
- Menschen, die ihre eigenen CLI-Implementierungen entwickeln, werden die Shared Source CLI als unverzichtbaren Leitfaden und Ergänzung zu den ECMA-Standards finden.
Dies ist eine Antwort auf anu - und jemand, der etwas Ähnliches mit Dateien macht.
Es ist ziemlich wichtig, auf Dateien mit einer using-Anweisung zuzugreifen. Dies stellt sicher, dass Sie Ihren Verweis auf die Datei ordnungsgemäß entsorgen.
using (var fs = File.OpenRead(path)) {
// Do something
}
- 1. Rails Datei.exist? gibt false zurück, wenn die Datei vorhanden ist
- 2. mysql Deadlock: Eine Zeile wird zweimal von einer Abfrage gesperrt?
- 3. Aufruf einer .php Datei
- 4. HttpURLConnection wird gesperrt
- 5. Java: Datei gesperrt?
- 6. Beim Laden einer Datei vom Server wird eine Fortschrittsanzeige angezeigt
- 7. ValueError beim Aufruf einer Methode
- 8. fopen() verursacht Segmentierungsfehler beim Aufruf einer vorhandenen Datei
- 9. wird ein Mutex beim Aufruf von notify für eine Bedingungsvariable
- 10. Javascript Scope Fehler beim Aufruf aus einer anderen Datei
- 11. Wie wird eine Datei beim Schreiben geschlossen?
- 12. Hilfe beim Aufruf einer API
- 13. Wird beim ersten Aufruf einer statischen Methode automatisch eine Instanz einer Klasse erstellt?
- 14. TFS-Datei muss gesperrt bleiben
- 15. Documents.Add Ergebnisse in Vorlage gesperrt wird
- 16. Warum wird PictureBox.Load auf einigen Systemen gesperrt?
- 17. Datenbank beim Zugriff auf PHP-Skript gesperrt
- 18. Datenbanksperren beim Hochladen einer Datei in einer Transaktion verhindern
- 19. Aufruf einer Funktion in einer Header-Datei
- 20. Prüfen, ob eine Datei in Java gesperrt ist
- 21. Eine offene Datei scheint gesperrt wird und kann nicht in Microsoft Edge
- 22. Textbereich verliert Fokus beim Aufruf einer Funktion
- 23. Aufruf eine Javascript-Funktion aus einer HTML-Datei
- 24. statische Variable wird nicht beim Aufruf der Funktion inkrementiert
- 25. seltsam Javascript Grammatik beim Aufruf einer Funktion
- 26. Speicherfehler beim Aufruf von
- 27. Aufruf einer Methode beim Schließen der Konsole
- 28. Wie überprüft man, ob eine Datei gesperrt ist oder nicht?
- 29. Überprüfen Sie, ob eine Datei bereits mit flock() gesperrt wurde.
- 30. Optionale Parameter beim Aufruf einer XSL-Vorlage