Wenn ich den unten stehenden Code ausführe, füllt er mein Array mit einer Liste von Dateien im angegebenen Verzeichnis.
Das ist gut.
Es werden jedoch auch Dateien erfasst, die sich "im Umlauf" befinden, d. h. Dateien, die gerade in dieses Verzeichnis kopiert werden.
Das ist schlecht.
Wie kann ich diese "in-flight"-Dateien ignorieren? Gibt es eine Möglichkeit, jede Datei zu überprüfen, um sicherzustellen, dass sie vollständig vorhanden ist, bevor ich sie bearbeite?
string[] files = Directory.GetFiles(ConfigurationSettings.AppSettings.Get("sourcePath"));
if (files.Length > 0)
{
foreach (string filename in files)
{
string filenameonly = Path.GetFileName(filename);
AMPFileEntity afe = new AMPFileEntity(filenameonly);
afe.processFile();
}
}