ListBox (ve genelde programınız) Notes dizinine yeni dosyalar ekleyip eklemediğinizi bilmenin bir yolu yoktur. Bu bilgi sadece Dosya Sistemi ile bilinir. Neyse ki NET Framework program FileSystemWatcher adlı ....
Bu FileSystemWatcher sınıf
bir örneğini kullanarak bir sistem klasörü izleme çeşit uygulayan nasıl bir örnek bir sınıf kullanarak bu olayların bildirilmesini sağlar
ListBox lb = new ListBox();
void Main()
{
FileSystemWatcher f = new FileSystemWatcher(@"d:\temp");
f.NotifyFilter = NotifyFilters.FileName;
f.Created += new FileSystemEventHandler(watcher_Created);
f.EnableRaisingEvents = true;
Form fm = new Form();
lb.Dock = DockStyle.Fill;
foreach(string file in Directory.EnumerateFiles(f.Path))
lb.Items.Add(Path.GetFileName(file));
fm.Controls.Add(lb);
fm.ShowDialog();
}
private void watcher_Created(object source, FileSystemEventArgs e)
{
string newFile = e.Name;
if(!lb.Items.Contains(newFile))
lb.Items.Add(newFile);
}
Orijinal kodunuzda bazı değişiklikler yaptığımı unutmayın. Tam bir FileSystemInfo sınıfına ihtiyacınız yoksa, bu sınıfı kullanmaya gerek yoktur, ancak daha basit Directory sınıfı dosya adlarını almak için yeterlidir. Daha sonra döngü, kodunuzun bir dizi dosyadan önce doldurmadan liste kutusunu doldurabilmesini sağlayan EnumerateFiles sınıfı kullanılarak oluşturulur.
(IE Visual Studio olduğu gibi, o işe yaramaz çalıştırmak etmeye kalkma sen LINQPad kullanarak bu kodu test edebilirsiniz) _Newly items_ eklenen
Ne demek? Bu yeni öğeler, Notes klasöründeki programınızdan harici olarak oluşturulmuş yeni dosyalar mı? – Steve
Program, bir .TXT dosyasında okur ve bu .TXT dosyasını Notes dizinine kopyalar. Liste kutusu, Notes dizininin içeriğini görüntüler ... (mantıklı olduğunu umar) .. – JonnyAppleseed
Ne zaman InitializeComponentDirectoryInfo? –