C# 根據時間獲取目錄及文件


實際開發中遇到的問題,記錄下來以便以后查看

業務:每天自動生成一個目錄,在按日期生成的目錄中會生成N個子目錄,

         子目錄中會生成一至兩個文件,先在需要取到子目錄中的文件 

  1 using System;
  2 using System.IO;
  3 using System.Collections.Generic;
  4 using System.Linq;
  5 using System.Text;
  6 using System.Threading.Tasks;
  7 
  8 namespace MULUTEST
  9 {
 10     class Program
 11     {
 12         //返回文件列表 
 13         private static List<String>  filelist;
 14         private static int fileDirJB=2;
 15 
 16         static void Main(string[] args)
 17         {
 18             string dir = "E:\\mulutest";
 19             Console.WriteLine("當前目錄:" + dir);
 20             try
 21             {
 22                 List<String> datelist = getDateDir();
 23                 if (datelist != null && datelist.Count > 0) 
 24                 {   filelist=new List<string>();
 25                     foreach (string datemulu in datelist)
 26                     {
 27                         Console.WriteLine("檢查日期" + datemulu + "的目錄");
 28                         string mulu = dir + "\\" + datemulu;                        
 29                         ListFiles(new DirectoryInfo(mulu),"",1);
 30                     }                  
 31                 }
 32 
 33                 Console.WriteLine("最終文件:");
 34                 foreach (string filename in filelist) {
 35                     Console.WriteLine(filename);
 36                 }
 37                 Console.ReadLine();
 38             }
 39             catch (IOException e)
 40             {
 41                 Console.WriteLine(e.Message);
 42             } 
 43         }
 44 
 45         #region 按時間 獲取文件夾名稱
 46         public static List<String> getDateDir() 
 47         {
 48             DateTime testdaay = Convert.ToDateTime("2015-03-11");
 49             Console.WriteLine("最后生成時間:" + testdaay.ToString("yyyyMMdd"));
 50             DateTime dt = DateTime.Today;
 51             Console.WriteLine("今天:" + dt.ToString("yyyyMMdd"));
 52             List<String> datelist = new List<string>();
 53 
 54             while (DateTime.Compare(dt, testdaay) > 0)
 55             {
 56                 testdaay = testdaay.AddDays(1);
 57                 datelist.Add(testdaay.ToString("yyyyMMdd"));
 58             }
 59             return datelist;
 60         }
 61         #endregion
 62 
 63         public static void ListFiles(FileSystemInfo info, string fjinfo,int mulujb)
 64         {
 65             if (fjinfo != null && !fjinfo.Equals(""))
 66             {
 67                 Console.WriteLine("開始查找目錄:" + fjinfo + "\\" + info.ToString());
 68             }
 69             else {
 70                 Console.WriteLine("開始查找目錄:"  + info.ToString());
 71             }
 72 
 73             if (!info.Exists) {
 74                 Console.WriteLine("不存在目錄:"+info.ToString());
 75                 return;
 76             }
 77 
 78             DirectoryInfo dir = info as DirectoryInfo;
 79             //不是目錄 
 80             if (dir == null) {
 81                 Console.WriteLine("不是目錄: "+info.ToString());
 82                 return;
 83             } 
 84 
 85             FileSystemInfo[] files = dir.GetFileSystemInfos();
 86             for (int i = 0; i < files.Length; i++)
 87             {
 88                 FileInfo file = files[i] as FileInfo;
 89                 //是文件 
 90                 if (file != null)
 91                 {
 92                     if (mulujb == fileDirJB)
 93                     {
 94                         filelist.Add(file.FullName);
 95                         Console.WriteLine("找到合法文件:" + file.FullName);
 96                     }
 97                     else {
 98                         Console.WriteLine("找到文件:" + file.FullName+" 不合法 ,忽略");
 99                     }                 
100                 }
101                 //對於子目錄,進行遞歸調用 
102                 else
103                 {
104                     int jib = mulujb + 1;
105                     ListFiles(files[i], info.ToString(),jib);
106                 }
107 
108             }
109         } 
110     }
111 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM