FileSystemWatcher Created-Ereignis wird nicht für alle erstellten Dateien ausgelöst
Posted: 25 Dec 2024, 19:40
Ich möchte Dateiinformationen für alle in einem Verzeichnis erstellten Dateien in eine Datenbank einfügen. Mein Programm macht das, wenn ich eine kleine Anzahl von Dateien im Verzeichnis ablege, aber es bekommt nicht alle, wenn ich größere Mengen auf einmal im Verzeichnis ablege (ich habe nicht viel getestet, aber es wurden nur ca 200 Namen in meine Datenbank aufgenommen, als ich versuchte, 800 Dateien gleichzeitig im Verzeichnis abzulegen).
Hier ist mein Code:
Welche Änderungen muss ich vornehmen, damit meine OnChanged-Methode für jede im Zielverzeichnis abgelegte Datei aufgerufen wird, unabhängig von der Anzahl der gleichzeitig abgelegten Dateien? Vielen Dank im Voraus.
Hier ist mein Code:
Code: Select all
static void Main(string[] args)
{
// Create a new FileSystemWatcher and set its properties.
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"C:\dropDirectory";
// Add event handlers.
watcher.Created += new FileSystemEventHandler(OnChanged);
// Begin watching.
watcher.EnableRaisingEvents = true;
while(DateTime.Now.Hour < 10);
}
private static void OnChanged(object source, FileSystemEventArgs e)
{
string strInsert = "INSERT INTO Files (Filename) VALUES ('" + e.Name + "')";
string strConnection = "Server = server_name; Database = database_name; User Id = user_id; Password = password;";
using (SqlConnection con = new SqlConnection(strConnection))
{
using (SqlCommand cmd = new SqlCommand(strInsert, con))
{
con.Open();
cmd.ExecuteScalar();
}
}
}