关键字搜搜代码由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“百度搜索关键字”。
C#根据字搜索文件夹下的所有包含具有关键字的文件和行号代码
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
using System.Collections;
namespace ConsoleApplication1
{
cla Program
{
static FileStream outfilestream = null;
static StreamWriter outwriter = null;
static string keyword = null;//请输入关键字
static void Main(string[] args)
{
outfilestream = new FileStream(“G:resres.txt”, FileAcce.Write);
outwriter = new StreamWriter(outfilestream,Encoding.Default);Console.WriteLine(“请输入搜索目录:”);
string searchFolder = Console.ReadLine();
Console.WriteLine(“请输入复制的目标目录:”);
string toFolder = Console.ReadLine();
Console.WriteLine(“请输入复制的文件类型:”);
string fileType = Console.ReadLine();
Console.WriteLine(“请输入关键字”);
keyword = Console.ReadLine();
CopyAllFiles(searchFolder, toFolder, fileType);
outwriter.Close();
Console.WriteLine(“运算结束”);
Console.Read();
}
static void CopyAllFiles(string fpath, string tpath, string filetype){
if(Directory.Exists(fpath))
{
foreach(string f in Directory.GetFiles(fpath, “*”+filetype)){
FileStream fileStream = null;
StreamReader streamReader = null;
string filename = Path.GetFileName(f);
int tag = 0;FileMode.Open,int line = 1;
try
{
fileStream = new FileStream(f, FileMode.Open, FileAcce.Read);streamReader = new StreamReader(fileStream, Encoding.Default);// StreamWriter streamWtiter = new StreamWriter(fileStream, Encoding.Default);
fileStream.Seek(0, SeekOrigin.Begin);
string content = streamReader.ReadLine();
while(content!= null)
{
if(content.Contains(keyword))
{
//Console.WriteLine(“行号{0}:{1}”,line,content);outwriter.WriteLine(“行号{0}:{1}”, line, content);tag = 1;
}
line++;
content = streamReader.ReadLine();
}
if(tag == 1)
{
//Console.WriteLine(“{0},{1}”, f, filename);
outwriter.WriteLine(“{0},{1}”, f, filename);
outwriter.WriteLine();
}
filename.Clone();
streamReader.Close();
}
catch(FieldAcceException)
{
}
catch(FileNotFoundException)
{
}
catch(MiingFieldException)
{
}
// File.Copy(f, Path.Combine(tpath, filename), true);
}
foreach(string f in Directory.GetDirectories(fpath))
{
CopyAllFiles(f, tpath, filetype);
}}}}
}