Я хочу вставить информацию о файле в базу данных для всех файлов, созданных в каталоге.Моя программа будет делать это, если я удаляю небольшое количество файлов в каталоге, но не получает их все, если я удаляю большие количества в каталоге сразу (я не проводил много испытаний, но он только вставил около200 имен в мою базу данных, когда я попытался сбросить 800 файлов в каталоге одновременно).
Вот мой код:
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();
}
}
}
Какие изменения мне нужно сделать, чтобы мой метод OnChanged вызывался для каждого файла, удаленного в целевой каталог, независимо от количества файлов, удаленных за один раз?Заранее спасибо.