public static StartParams parse(string[] args) { StartParams res = new StartParams(); List<String> filters = new List<string>(); String path = ""; const int START = 0, PATH_FLAG_S = 1, FILTER_FLAG_S = 2, PATH_READING = 3, FILTER_READING = 4; string currArg; int state = START; int i = 0; while (i != args.Length) { currArg = args[i]; switch (state) { case START: if (currArg == PATH_FLAG) { state = PATH_FLAG_S; } break; case PATH_FLAG_S: if (currArg != FILTER_FLAG) { path += currArg + " "; } else { state = FILTER_FLAG_S; } break; case FILTER_FLAG_S: filters.Add("."+currArg); break; } i++; } string[] fils = new string[filters.Count]; i=0; foreach (string s in filters) { fils[i] = s; i++; } res.filters = fils; res.path=path; return res; }
public static List<FileConteiner> Find(StartParams startParams) { string[] files; try { files = Directory.GetFiles(startParams.path, "*.*", SearchOption.AllDirectories); } catch (Exception e) { throw e; //Console.WriteLine(e.Message); //return null; } FileInfo fileInfo; List<FileConteiner> filesList = new List<FileConteiner>(); foreach (string filePath in files) { fileInfo = new FileInfo(filePath); if (startParams.checkForAcceptedExtension(fileInfo.Extension)) { filesList.Add(new FileConteiner(filePath)); } } return filesList; }