C#form窗体程式能否实现循环读取一个文件夹里的.xlsx文件,如果有新文件生成则记录这些文件名并循环赋值给变量a
时间: 2024-09-14 10:12:23 浏览: 41
Java 读取本地.xls .xlsx文件
4星 · 用户满意度95%
在C#的Windows Forms应用程序中,可以使用`DirectoryInfo`, `FileInfo`以及`FileSystemWatcher`来实现在特定文件夹下监视新的`.xlsx`文件,并循环读取和记录新文件的名称。下面是一个基本示例:
首先,你需要导入所需的命名空间:
```csharp
using System.IO;
using System.IO.PollingStream;
using System.Threading;
```
然后,在Form类中设置一个变量存储文件名集合和一个FileSystemWatcher实例:
```csharp
private List<string> fileNames = new List<string>();
private FileSystemWatcher watcher;
```
初始化Watcher并设置事件处理程序:
```csharp
public Form1()
{
InitializeComponent();
// 创建文件系统观察者
watcher = new FileSystemWatcher("your_folder_path", "*.xlsx");
watcher.Changed += OnChanged;
watcher.EnableRaisingEvents = true;
}
private void OnChanged(object source, FileSystemEventArgs e)
{
// 文件变更事件发生时,添加新的文件名到列表
fileNames.Add(e.Name);
}
```
最后,在适当的地方(如按钮点击事件或定时任务)循环遍历fileNames变量:
```csharp
private void Button_Click(object sender, EventArgs e)
{
foreach (var fileName in fileNames)
{
// 在这里读取文件内容
// 例如:ExcelPackage.Load(fileName); // 如果使用EPPlus库读取.xlsx文件
// 或者简单地打印文件名
Console.WriteLine($"New Excel file found: {fileName}");
}
// 清空已读取的文件名,以便下一轮循环
fileNames.Clear();
}
```
请注意,这只是一个基础示例,实际操作可能需要考虑异常处理、错误日志和优化性能等因素。
阅读全文