Wie in C# überprüfen, ob eine Datei von einem anderen Prozess verwendet wird?
Hallo zusammen. Ich bin neu in C# und habe ein Problem bei der Arbeit mit Dateien. Ich muss programmatisch Textdateien zum Lesen öffnen, aber manchmal sind sie bereits in einem anderen Programm geöffnet (z.B. in Notepad oder Excel). In solchen Fällen stürzt meine Anwendung mit einer `IOException`-Ausnahme und der Meldung "The process cannot access the file because it is being used by another process" ab.
Hier ist ein Beispiel meines Codes:
```csharp
string filePath = @"C:\Data\report.txt";
try
{
string content = File.ReadAllText(filePath);
Console.WriteLine(content);
}
catch (IOException ex)
{
Console.WriteLine($"Fehler: {ex.Message}");
}
```
Das Problem ist, dass ich die Ausnahme einfach abfange, aber ich würde gerne im Voraus wissen, ob die Datei belegt ist, und entweder auf ihre Freigabe warten oder dem Benutzer eine verständliche Nachricht ausgeben. Ich habe versucht, `File.Exists()` zu verwenden, aber das hilft nicht – die Datei existiert, ist aber gesperrt.
Könnt ihr mir sagen, ob es in C# eine standardmäßige Möglichkeit gibt, zu überprüfen, ob eine Datei gerade verwendet wird?
Noch keine Antworten.
Anmelden um eine Antwort zu hinterlassen
Blogs
Was soll main() in C++ zurückgeben? Vergleich mit C und Standards
Gradle 5.0: Wie man deprecated Features behebt und ein Kotlin-Projekt aktualisiert
So erhalten Sie den Eigenschaftswert anhand des Namens durch Reflexion in C#: Vollständiger Leitfaden