public static string[] GetFiles(string fileName, FileKind fileKind) { string arguments = string.Format("{0} AND {1}", ParseFileKind(fileKind), ParseFileName(fileName)); List <string> files = new List <string>(); files.AddRange(GetFiles(arguments)); if (fileKind.HasFlag(FileKind.Apps)) { files.AddRange(GetSystemFiles(fileName)); } return(files.ToArray()); }
static string ParseFileKind(FileKind kind) { if (kind == FileKind.Unknown) { return(""); } FileKind[] kinds = ((FileKind[])Enum.GetValues(typeof(FileKind))).Where(x => kind.HasFlag(x)).ToArray(); kinds = kinds.Where(x => x != FileKind.All).ToArray(); string parseKind = string.Empty; for (int i = 0; i < kinds.Length; i++) { if (kinds[i] == FileKind.Apps) { parseKind += "kind:program"; } else if (kinds[i] == FileKind.Documents) { parseKind += "kind:docs"; } else if (kinds[i] == FileKind.Music) { parseKind += "kind:music"; } else if (kinds[i] == FileKind.Photos) { parseKind += "kind:pics"; } else if (kinds[i] == FileKind.Videos) { parseKind += "kind:video"; } else if (kinds[i] == FileKind.Folder) { parseKind += "kind:folder"; } if (i < kinds.Length - 1) { parseKind += " OR "; } } return(parseKind); }