-3

我有一个文件夹保存在这里:C:\MyFiles

在那个文件夹中,我有一些.txt文件。

我正在寻找打开该文件夹中每个 .txt 文件并搜索该值的最佳方法,Error或者Warning当它搜索时它必须告诉我files包含这些单词的内容。

我最好的选择是什么?要使用 t-sql 创建存储过程来做到这一点?或使用 C# 或 VB.net 代码创建 .exe。

任何人有一个例子让我看看开始?

4

3 回答 3

0

C# 控制台应用程序是要走的路!

  1. 从目录中获取文件
  2. 从文件中读取文本
于 2012-06-27T08:43:26.500 回答
0

我最终使用这个命令创建了一个 BAT 文件。

find /c "error" C:\MyFiles\*.txt
find /c "warning" C:\MyFiles\*.txt
于 2012-07-02T05:35:39.883 回答
0

这是一个示例项目,不使用高级功能以保持简单和可理解

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);
                }
            }
        }
    }
}
于 2012-06-27T08:59:25.473 回答