


Wie kann ich sicherstellen, dass eine Datei vollständig geschrieben ist, bevor ich sie kopiere?
Warten, bis eine Datei vollständig geschrieben ist
In bestimmten Szenarien ist es wichtig sicherzustellen, dass Dateikopiervorgänge erst beginnen, wenn die Quelldatei ist vollständig geschrieben. Leider kann dies beim Umgang mit großen Dateien eine Herausforderung darstellen, da vorzeitige Kopierversuche zu dem gefürchteten Fehler „Die Datei kann nicht kopiert werden, da sie von einem anderen Prozess verwendet wird“ führen können.
Eine Problemumgehung für das Problem
Obwohl es keine vollständige Lösung für dieses Problem gibt, gibt es eine Problemumgehung, bei der regelmäßig überprüft wird, ob die Datei noch geändert wird, bevor der Kopiervorgang gestartet wird. Hier sind zwei Methoden, um diese Aufgabe zu erfüllen:
Methode 1
private bool IsFileLocked(FileInfo file) { FileStream stream = null; try { stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None); } catch (IOException) { return true; } finally { if (stream != null) stream.Close(); } return false; }
Diese Methode versucht, die Datei für exklusiven Zugriff zu öffnen und gibt true zurück, wenn die Datei gesperrt ist (d. h. wird noch von einem anderen Thread geschrieben oder verarbeitet).
Methode 2
const int ERROR_SHARING_VIOLATION = 32; const int ERROR_LOCK_VIOLATION = 33; private bool IsFileLocked(string file) { if (File.Exists(file)) { FileStream stream = null; try { stream = File.Open(file, FileMode.Open, FileAccess.ReadWrite, FileShare.None); } catch (Exception ex2) { int errorCode = Marshal.GetHRForException(ex2) & ((1 << 16) - 1); if ((ex2 is IOException) && (errorCode == ERROR_SHARING_VIOLATION || errorCode == ERROR_LOCK_VIOLATION)) { return true; } } finally { if (stream != null) stream.Close(); } } return false; }
Diese Methode prüft sowohl das Vorhandensein der Datei als auch ihre Verfügbarkeit für exklusiven Zugriff und gibt „true“ zurück, wenn die Datei gesperrt ist (d. h. aufgrund einer Freigabe- oder Sperrverletzung nicht zugänglich ist).
Das obige ist der detaillierte Inhalt vonWie kann ich sicherstellen, dass eine Datei vollständig geschrieben ist, bevor ich sie kopiere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Welche Werte sind von C -Sprachfunktionen zurückgegeben? Was bestimmt den Rückgabewert?

GULC: C -Bibliothek von Grund auf neu gebaut

C Sprachfunktionsformat -Buchstaben -Fall -Konvertierungsschritte

Was sind die Definitionen und Aufrufregeln von C -Sprachfunktionen und was sind die?

Wo ist der Rückgabewert der C -Sprachfunktion im Speicher?

eindeutiger Gebrauch und Phrasenfreigabe

Wie benutze ich Algorithmen aus der STL (sortieren, finden, transformieren usw.) effizient?

Wie funktioniert die C -Standard -Vorlagenbibliothek (STL)?
