求一c#程序,搜索本地硬盘下带有特定文件名的文件,路径输出到控制台中

例如:D盘中所有文件名含有周杰伦的文件最好要有注释... 例如:D盘中所有文件名含有周杰伦的文件
最好要有注释
展开
 我来答
mnbhy
2009-08-18 · 超过23用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:67.8万
展开全部

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

namespace ConsoleApplication5

{

    class Program

    {

        static void Main(string[] args)

        {

            Console.WriteLine("请输入要访问的驱动器:");

            string VisitDriver = Console.ReadLine();

            DriveInfo drive = new DriveInfo(VisitDriver);//获取驱动器(硬盘)

            string strPath = drive.Name.ToString();//得到一个要查找的目标路径

             DirectoryInfo dir = new DirectoryInfo(strPath);

             foreach (FileInfo f in dir.GetFiles("*周杰伦*.*"))//开始查找文件名中含周杰伦的文件名

             {

                 

                 Console.WriteLine(f.FullName);//打印出完整路径

             

             }

             Console.Read();

        }

    }

}

下面是我查找含有 2009 字符的结果,同理查找周杰伦

快乐怪物
2009-08-18 · TA获得超过886个赞
知道小有建树答主
回答量:236
采纳率:0%
帮助的人:151万
展开全部
static void Main(string[] args)
{
//路径名
string DirName = @"e:\";
//文件中包含名
string FileName = "aa";

GetFileName(DirName,FileName);
Console.ReadLine();
}

static void GetFileName(string DirName, string FileName)
{
//文件夹信息
DirectoryInfo dir = new DirectoryInfo(DirName);
//如果非根路径且是系统文件夹则跳过
if (null != dir.Parent && dir.Attributes.ToString().IndexOf("System") > -1)
{
return;
}
//取得所有文件
FileInfo[] finfo = dir.GetFiles();
string fname = string.Empty;
for (int i = 0; i < finfo.Length; i++)
{
fname = finfo[i].Name;
//判断文件是否包含查询名
if (fname.IndexOf(FileName) > -1)
{
Console.WriteLine(finfo[i].FullName);
}
}
//取得所有子文件夹
DirectoryInfo[] dinfo = dir.GetDirectories();
for (int i = 0; i < dinfo.Length; i++)
{
//查找子文件夹中是否有符合要求的文件
GetFileName(dinfo[i].FullName, FileName);
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阮然宛瑰玮
2019-03-03 · TA获得超过3912个赞
知道小有建树答主
回答量:3164
采纳率:30%
帮助的人:446万
展开全部
static
void
Main(string[]
args)
{
//路径名
string
DirName
=
@"e:\";
//文件中包含名
string
FileName
=
"aa";
GetFileName(DirName,FileName);
Console.ReadLine();
}
static
void
GetFileName(string
DirName,
string
FileName)
{
//文件夹信息
DirectoryInfo
dir
=
new
DirectoryInfo(DirName);
//如果非根路径且是系统文件夹则跳过
if
(null
!=
dir.Parent
&&
dir.Attributes.ToString().IndexOf("System")
>
-1)
{
return;
}
//取得所有文件
FileInfo[]
finfo
=
dir.GetFiles();
string
fname
=
string.Empty;
for
(int
i
=
0;
i
<
finfo.Length;
i++)
{
fname
=
finfo[i].Name;
//判断文件是否包含查询名
if
(fname.IndexOf(FileName)
>
-1)
{
Console.WriteLine(finfo[i].FullName);
}
}
//取得所有子文件夹
DirectoryInfo[]
dinfo
=
dir.GetDirectories();
for
(int
i
=
0;
i
<
dinfo.Length;
i++)
{
//查找子文件夹中是否有符合要求的文件
GetFileName(dinfo[i].FullName,
FileName);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
junjun_901
2009-08-18 · TA获得超过123个赞
知道小有建树答主
回答量:386
采纳率:0%
帮助的人:212万
展开全部
长目录名一般是这样解决的,比如c:\program files 表示为c:\progra~1 就可以了。

批处理实现文件全盘搜索

代码:
@echo off
title 文件搜索
color 2a
echo.
:loop
set /p filename=请输入要查找的文件名:
echo.
echo 文件搜索中,请耐心等待...
set alldrive=c d e f g h i j k l m n o p q r s t u v w x y z
for %%i in (%alldrive%) do if exist %%i:\ dir /s /b %%i:| find "%

filename%">>results.txt
type results.txt
del results.txt
echo 搜索完毕
echo.
echo.
echo 继续查询请输入y,退出请输入n
echo.
echo.======================================
set /p choice=请输入您的选择:
if %choice%==y goto loop
if %choice%==n goto end
pause>nul
:end
exit

没有时间修改,只希望对你有所启发!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最后的仙人
2009-08-18 · TA获得超过1961个赞
知道大有可为答主
回答量:1509
采纳率:0%
帮助的人:1402万
展开全部
String[] files=Directory.GetFiles(path,"*.*",SearchOption.AllDirectories);//获取path路径下所有文件的文件路径(包含子目录)
String[] findfiles=new String[files.Length];
int index=0;
foreach(String file in files)
{
if(file.IndexOf("周杰伦")!=-1)
{
findfiles[index]=file;
index++;
}
}
for(int i=0;i<index;i++)
{
Console.WriteLine(findfiles[i]);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式