我能够在列表框中显示来自目录的文件名的项目。在重新编译程序之前,不会显示新添加的项目。我试过“ListBox.Refresh()”,但它没有用。任何建议将不胜感激。谢谢
String rssUrl = "someUrlHere";
String rssWebsite = "Some website name here";
//Now, you can use a delimiter before storing your two values
String rssUrlAndWebsite = rssUrl + "," + rssWebsite;
//Now you can store this using one key.
//When you want to read them out, you can use your key to get the value and simply split using the delimiter and there, you will have two values!
答案 0 :(得分:1)
ListBox(通常是您的程序)无法知道您是否将新文件添加到Notes目录中。此信息仅为文件系统所知。幸运的是,.NET Framework允许您使用名为FileSystemWatcher ....
的类通知您的程序这些事件这是一个如何使用FileSystemWatcher类的实例在系统文件夹上实现某种监视的示例
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);
}
请注意,我对原始代码进行了一些更改。如果您不需要完整的FileSystemInfo类,则不需要使用此类,但更简单的Directory类足以检索文件名。然后使用EnumerateFiles类构造循环,该类允许代码填充列表框而不填充文件数组。
(IE你可以使用LinqPad测试这段代码,不要试图在Visual Studio上运行它,它不会工作)