C#中利用FileSystemInfo实现未找到目标文件夹的提示功能
解决未找到文件夹时的提示问题
嗨,这个需求很好实现,核心就是先检查搜索结果有没有内容就行!因为GetFileSystemInfos没找到匹配项时会返回空数组,咱们可以利用这一点添加提示逻辑。
修改后的完整代码
using System; using System.IO; using System.Diagnostics; // WinForms项目需要引用这个命名空间 using System.Windows.Forms; // 你的方法内部代码 string ped = datagridview1.SelectedCells[0].Value.ToString(); // 先加个小判断,防止搜索关键词为空导致匹配所有文件夹 if (string.IsNullOrWhiteSpace(ped)) { MessageBox.Show("请选择有效的搜索关键词!"); return; } string path = @"C:\"; DirectoryInfo hdDirectoryInWhichToSearch = new DirectoryInfo(path); FileSystemInfo[] filesAndDirs = hdDirectoryInWhichToSearch.GetFileSystemInfos("*" + ped + "*"); // 关键:先判断是否找到匹配项 if (filesAndDirs.Length == 0) { MessageBox.Show($"未找到包含「{ped}」的文件夹!"); } else { foreach (FileSystemInfo foundFile in filesAndDirs) { // 这里不需要额外加\\,FullName已经是完整路径了 string fullName = foundFile.FullName; Process.Start(fullName); } }
几个实用小细节
- 去掉了原代码里的
@"\\",因为foundFile.FullName本身就是标准的完整文件夹路径,多添加反斜杠反而可能导致Process.Start识别出错。 - 新增了
string.IsNullOrWhiteSpace(ped)的判断,避免用户未选中有效单元格时,搜索空字符串匹配C盘所有文件夹的情况。 - 如果你的项目是控制台应用,把
MessageBox.Show替换成Console.WriteLine($"未找到包含「{ped}」的文件夹!");即可。
内容的提问来源于stack exchange,提问作者big Bro
相关产品推荐
相关产品推荐

