c# - 使用 c# 进行文件搜索
问题描述
我想在所选磁盘的所有文件夹中搜索用户输入的文件。如果文件直接在磁盘上,我会得到回报,但它不会检查子文件夹。
string arama = TextBox1.Text;
string yol = ListBox1.SelectedItem.Value;
if (File.Exists(yol + arama))
{
string[] files = Directory.GetFiles(yol, arama);
foreach (string file in files)
ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + "DOSYA VAR. DOSYA YOLU = " + file + "');", true);
}
else
{
try
{
string[] files2 = Directory.GetFiles(yol, arama, SearchOption.AllDirectories);
if (files2 == null)
ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + "DOSYA YOK" + "');", true);
else
foreach (string file in files2)
ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + "DOSYA VAR. YOLU:" + files2 + "');", true);
}
catch (Exception ex)
{
ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + "DOSYA VAR. YOLU:" + ex + "');", true);
}
}
解决方案
您可以使用此代码搜索所有子文件夹;
private void ListFiles(DirectoryInfo dr, string searchname)
{
System.IO.FileInfo[] files = null;
System.IO.DirectoryInfo[] subDirs = null;
try
{
files = dr.GetFiles(searchname + ".*");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
if (files != null)
{
foreach (FileInfo fi in files)
{
allFiles.Add(fi);
}
subDirs = dr.GetDirectories();
foreach (DirectoryInfo di in subDirs)
{
ListFiles(di, searchname);
}
}
}
推荐阅读
- sql - 更新不同数据类型的单列
- url - Internet Shortcut .URL 文件中的内嵌图像?
- ios - 如何为视图生命周期事件(onAppear、onDisappear)制作可重用的修饰符?
- python - 熊猫翻滚几天并得到总和
- gps - 卡尔曼滤波 - 纬度经度需要转换为米?
- c++ - 一段时间后,我的主线程随机停止执行代码?
- typescript - 从 swagger yml 文件生成 Typescript `d.ts` 文件
- c - Valgrind C/C++ 在堆栈外使用的堆栈分配创建的统一值
- c# - 比较颜色 Toargb
- python - selenium.common.exceptions.TimeoutException:消息:超时等待页面通过 Selenium 使用 IEDriverServer 和 Internet Explorer 加载