List<FileDesc> AddFileDescToList (bool isFillerFile, string filePath, Dictionary<string, string> dictionary)
{
List<FileDesc> fileDescs = new List<FileDesc> ();
String dirPath = Path.GetDirectoryName (filePath);
String filename = Path.GetFileName (filePath);
if (!filename.Contains ("*") && !filename.Contains("?") || !Directory.Exists (dirPath)) {
fileDescs.Add (new FileDesc (filePath, new Dictionary<string, string> (dictionary)));
} else {
String regex = "^" + Regex.Escape(filename).Replace ("\\*", "(.*)").Replace("\\?", "(.)") + "$";
String[] allDirFilenames = Directory.GetFiles (dirPath);
foreach (String thisFilePath in allDirFilenames) {
String thisFilename = Path.GetFileName (thisFilePath);
if (Regex.Match (thisFilename, regex, RegexOptions.Compiled | RegexOptions.IgnoreCase).Success) {
fileDescs.Add (new FileDesc (thisFilePath, new Dictionary<string, string> (dictionary)));
}
}
}
return fileDescs;
}