一个文件侠里面有很多文件文件...文件名大致如下:......
20081011211372.txt
20081011211435.txt
20081011211556.txt
20081011211835.txt
,,,,,,文件名以年月日时分秒.txt格式命名现在我要读取前3个小时的所有文件.应该怎样做呢(比如现在8点过,那么我就要读取5:00-8:00的所有文件)
另外求一正则表达式,用于搜索上面文本文件中的所有 "row-00001"或是"ROW-00001".

解决方案 »

  1.   

    string [] Files;
    int h=DateTime.Now.Hour;
    Files = Directory. GetFiles (@"",);
     foreach (string name in strFiles)
           {           
    if(Hour-int.Parse(name.substring(8,2))==3)
      arrFiles.Add(name);   
         }
      

  2.   


    请问arrFiles.Add(name); 这句是什么意思呢?
      

  3.   

    分几个线程去读,结果放到一个list列表里就成(list是非线程安全滴,所以他们公用一个内存区)实际上你这个问题,在一本比较经典的书《编程珠玑》里第一章就是一个和你非常类似一个实际案例
      

  4.   

    -----------------
    文件名应该存放在数据库里吧,那再在数据库加上一个时间字段吧,这样应该容易实现些 
    ------------------
    同意,这样效率又高.可是你也要做到本地文件与数据库同库~~也有一定的工作量吧?
    问题1.如果不用数据库,想搜索前三小时的,那就以上第几楼的方法啊
    string [] Files; 
    int h=DateTime.Now.Hour; 
    Files = Directory. GetFiles (@"",); 
    foreach (string name in strFiles) 
          {          
    if(Hour-int.Parse(name.substring(8,2))==3)  //这里是用三小时做判断条件,先把字符串转日期型,再比较.
      arrFiles.Add(name);  //这里表示符合前三小时的文件名,全记录在这个LIST里.  
        } 
     
    问题2: 另外求一正则表达式,用于搜索上面文本文件中的所有 "row-00001"或是"ROW-00001".
    不清楚你想干什么,你想搜索用String.Find()不行?你想匹配那就用正则表示式的Regex类不就可以了?
    row
      

  5.   

    String.Find()似乎是要区分大小写的..而文件里面存在"row-00001"和"ROW-00001". 
    都要找出来...所在打算用正则...但不会写这个东东 -_-||
      

  6.   

    OK!现在只差一个正则表达式....另外 crazyhardy 说的String.Find()不知道在哪里
      

  7.   

    既然文件名是时间,那就搜索符合前缀的文件嘛
    比如 20080809125712.txt 搜索当天的文件 就搜索包含 20080809的就可以了还有个变态的办法
    用GETFILES取出所有文件名(其实可以根据搜索选项只取出一部分,用上边的办法),然后吧文件名去掉后缀和路径,转成数字。 用数字作KEY,吧这些名字作个排序集合 SORTLIST<long,string> 然后取出里边 大于上限,小于下限的部分就OK了。
      

  8.   

    各位再帮帮忙:StreamReader sr = new StreamReader("d:\\20081011211435.txt");
    string content = sr.ReadToEnd();最后一个问题...马上结贴 content 的内容只有1个字符 ........是怎么回事?实际里面有大约2M的字符串......
      

  9.   

    编码问题 你这样弄出来的文件 默认用UTF8取数据的。 你应该先确认你要读的数据文件是什么编码的 ANSI UTF7 UNCODE GBK GB2312 等等
      

  10.   

    如果不是标准的UTF8文件 你不能用这种缺省方式