检查文件内容

class Program
    {
        static List<string> lastFiles = new List<string>();
        static List<string> errorfiles = new List<string>();
        static void Main(string[] args)
        {
            ParseDirectory(GetAppConfig("Path"));
            ProcessFile(GetAppConfig("CheckKey"));
            foreach(string s in errorfiles)
            {
                Console.WriteLine(s);
            }
            Console.WriteLine("down");
            Console.ReadLine();
        }
        private static string GetAppConfig(string strKey)
        {
            foreach (string key in ConfigurationManager.AppSettings)
            {
                if (key == strKey)
                {
                    return ConfigurationManager.AppSettings[strKey];
                }
            }
            return null;
        }
        private static void ParseDirectory(string path)
        {
            string[] dirs = Directory.GetDirectories(path);//得到子目录
            IEnumerator iter = dirs.GetEnumerator();
            while (iter.MoveNext())
            {
                string str = (string)(iter.Current);
                ParseDirectory(str);
            }

            string[] files = Directory.GetFiles(path);
            if (files.Length > 0)
            {
                var query = (from f in files
                             let fi = new FileInfo(f)
                             orderby fi.LastWriteTime descending
                             select fi.FullName).Take(6);//获取最新6个文件
                lastFiles.AddRange(query.ToList());
            }
        }
        static void ProcessFile(string checkKey)
        {
            foreach (string path in lastFiles)
            {
                using (StreamReader sr = new StreamReader(path))
                {
                    string content = sr.ReadToEnd().ToString();
                    sr.Close();
                    if (content.Contains(checkKey))
                        errorfiles.Add(path);
                }
            }

        }

    }

  

时间: 2024-09-29 03:20:53

检查文件内容的相关文章

根据jenkins更新Log检查文件更新并比较两文件内容

开发人员经常将一些接口的参数POST更改成get 进行测试,后面忘记后就直接提交代码,jenkins更新后出现各种问题,在代码构建过程中匹配下相关配置文件. 下面是根据jenkins更新Log检查文件更新并比较两文件内容 #!/bin/sh if grep "routes/web.php" /var/lib/jenkins/jobs/${JOB_NAME}/lastSuccessful/log > /dev/null 2>&1 then echo "Upd

Linux文件内容查阅

直接查阅一个文件的内容:cat/tac/nl命令 cat (concatenate) # cat [-AbEnTv] 选项与参数: -A  :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已: -b  :列出行号,仅针对非空白行做行号显示,空白行不标行号: -E  :将结尾的断行字节 $ 显示出来: -n  :列印出行号,连同空白行也会有行号,与 -b的选项不同: -T  :将 [tab] 按键以 ^I 显示出来: -v  :列出一些看不出来的特殊字符 范例一:查阅 /etc/is

文件内容操作篇clearerr fclose fdopen feof fflush fgetc fgets fileno fopen fputc fputs fread freopen fseek ftell fwrite getc getchar gets

clearerr(清除文件流的错误旗标) 相关函数 feof 表头文件 #include<stdio.h> 定义函数 void clearerr(FILE * stream); 函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标. 返回值 fclose(关闭文件) 相关函数 close,fflush,fopen,setbuf 表头文件 #include<stdio.h> 定义函数 int fclose(FILE * stream); 函数说明 fclos

od 查看特殊格式的文件内容

用户通常使用od命令查看特殊格式的文件内容.通过指定该命令的不同选项可以以十进制.八进制.十六进制和ASCII码来显示文件. 语法: od [选项] 文件- 命令中各选项的含义: - A 指定地址基数,包括: d 十进制 o 八进制(系统默认值) x 十六进制 n 不打印位移值 - t 指定数据的显示格式,主要的参数有: c ASCII字符或反斜杠序列 d 有符号十进制数 f 浮点数 o 八进制(系统默认值为02) u 无符号十进制数 x 十六进制数 除了选项c以外的其他选项后面都可以跟一个十进

linux 里 /etc/passwd 、/etc/shadow和/etc/group 文件内容解释

•/etc/passwd文件用于存放用户账户信息,每行代表一个账户,每个账户的各项信息用冒号分割,例如: root:x:0:0:root:/root:/bin/bash username:password:uid:gid:allname:homedir:shell 1.用户名. 2.密码,“x”代表密码存储在/etc/shadow中:当该值为其他任意非“x”值时,可以通过root用户切换(不需要密码),但是都无法通过非root用户切换到相应用户,因为无法获得起密码了. 3.uid,用户id,0-

php zip文件内容比较类

一个php实现的zip文件内容比较类及其用法,可实现比较两个zip文件的内容,返回新增.删除.及相同的文件列表. php实现的zip文件内容比较类.是一个非常实用的PHP类文件.该php zip文件比较类主要实现比较两个zip文件的内容,返回新增,删除,及相同的文件列表.暂时只支持单层.需求:上传一个zip文件,zip内有很多图片文件.需要对图片文件进行一系列很耗时的处理.当用户再更新zip文件时.判断zip内文件是否一致,只处理不同的文件.这样可以节省资源与时间,因此需要编写一个能够比较zip

7 RandomAccessFile读取文件内容保存--简单例子(需要验证)

1 import org.slf4j.Logger; 2 import org.slf4j.LoggerFactory; 3 4 import java.io.*; 5 6 /** 7 * 读取动态产生的文件内容 8 */ 9 public class RandomAccessRead { 10 public static Logger logger= LoggerFactory.getLogger(RandomAccessRead.class); 11 12 //文件默认读取位置为从开始读取

Linux文件内容查阅 - cat, tac, nl, more, less, head, tail, od

cat 由第一行开始显示文件内容 tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写! nl 显示的时候,顺道输出行号! more 一页一页的显示文件内容 less 与 more 类似,但是比 more 更好的是,他可以往前翻页! head 只看头几行 tail 只看尾巴几行 od 以二进位的方式读取文件内容! cat (concatenate) [[email protected] ~]# cat [-AbEnTv] 选项与参数: -A :相当於 -vET 的整合选项,可列出一

PHP如何正确读取文件内容?解析

PHP 读取文件的多种方法,一起来看看吧. 处理诸如 PHP 之类的现代编程语言的乐趣之一就是有大量的选项可用.PHP 可以轻松地赢得 Perl 的座右铭“There's more than one way to do it”(并非只有一种方法可做这件事),尤其是在文件处理上.但是在这么多可用的选项中,哪一种是完成作业的最佳工具?当然,实际答案取决于解析文件的目标,因此值得花时间探究所有选项. 回页首 传统的 fopen 方法 fopen 方法可能是以前的 C 和 C++ 程序员最熟悉的,因为如