我有一个文件夹保存在这里:C:\MyFiles
在那个文件夹中,我有一些.txt
文件。
我正在寻找打开该文件夹中每个 .txt 文件并搜索该值的最佳方法,Error
或者Warning
当它搜索时它必须告诉我files
包含这些单词的内容。
我最好的选择是什么?要使用 t-sql 创建存储过程来做到这一点?或使用 C# 或 VB.net 代码创建 .exe。
任何人有一个例子让我看看开始?
我最终使用这个命令创建了一个 BAT 文件。
find /c "error" C:\MyFiles\*.txt
find /c "warning" C:\MyFiles\*.txt
这是一个示例项目,不使用高级功能以保持简单和可理解
using System;
using System.IO;
using System.Text;
namespace CheckErrorWarning
{
class Program
{
// Pass on the command line the full path to the directory with the txt files
static void Main(string[] args)
{
if (args.Length < 1)
{
Console.WriteLine("Usage: CheckErrorWarning <directoryname>");
return;
}
if (Directory.Exists(args[0]) == false)
{
Console.WriteLine("Directory : " + args[0] +" not found or not accessible");
return;
}
string[] textFiles = Directory.GetFiles(args[0], "*.txt");
foreach (string fileName in textFiles)
{
string[] lines = File.ReadAllLines(fileName);
for (int x = 0; x < lines.Length; x++)
{
int warnPos = lines[x].IndexOf("warning",
StringComparison.CurrentCultureIgnoreCase);
if (warnPos > 0) Console.WriteLine("File:" + fileName +
", warning at line " + x +
", position " + warnPos);
int errPos = lines[x].IndexOf("error",
StringComparison.CurrentCultureIgnoreCase);
if (errPos > 0) Console.WriteLine("File:" + fileName +
", error at line " + x +
", position " + errPos);
}
}
}
}
}