public static string[] FiltersToFolderFiles(Query query) { //Get Filters var constraints = BuildConstraintDictionary(query.Constraints); constraints.TryGetValue("SearchPath", out var folder); if (folder == null) { throw new InvalidExecuteQueryException("Missing Folder filter."); } if (folder.ToString().EndsWith("\\") == false) { folder = folder + "\\".ToString(); } constraints.TryGetValue("SearchPattern", out var SearchPattern); if (SearchPattern == null) { SearchPattern = "*"; } constraints.TryGetValue("SearchOption", out var SearchOption); if (SearchOption == null || !Enum.TryParse <SearchOption>(SearchOption.ToString(), out var searchOptionResult)) { searchOptionResult = System.IO.SearchOption.TopDirectoryOnly; } //Get File List string[] dirs = null; try { dirs = Directory.GetFiles(folder.ToString(), SearchPattern.ToString(), searchOptionResult) ?? null; } catch { } return(dirs); }
/// <summary> /// 读取文件到字典 /// </summary> /// <param name="pathString">指定路径</param> /// <param name="extension">扩展名</param> /// <param name="searchOption">搜索子目录还是不搜索</param> /// <returns></returns> public static Dictionary <string, List <string> > GetFileInfo(string pathString, string extension, SearchOption searchOption) { string fileInFokey = pathString + @"(." + extension + @")" + searchOption.ToString(); if (AllFileInfos.ContainsKey(fileInFokey))//如果存在就直接返回 { return(AllFileInfos[fileInFokey]); } //如果不存在就进行添加 AllFileInfos.Add(fileInFokey, new Dictionary <string, List <string> >()); // string[] filePaths = Directory.GetFiles(pathString, "*." + extension, searchOption); var filePaths = Directory.EnumerateFiles(pathString, "*." + extension, searchOption); foreach (string filepath in filePaths) { string filename = Path.GetFileNameWithoutExtension(filepath); if (AllFileInfos[fileInFokey].ContainsKey(filename)) { AllFileInfos[fileInFokey][filename].Add(filepath); } else { AllFileInfos[fileInFokey].Add(filename, new List <string> { filepath }); } } return(AllFileInfos[fileInFokey]); }
private bool IsValidSearchOption(SearchOption searchOption, string fullFilePath) { if (!FilePathContainsASearchOption(fullFilePath)) { return(true); } return(fullFilePath.ToLower().Contains(searchOption.ToString().ToLower())); }
protected override IEnumerable <string> EnumerateFiles(string path, string searchPattern, SearchOption searchOption) { IEnumerable <string> files; string key = path + searchPattern + searchOption.ToString(); if (enumeratedFiles.TryGetValue(key, out files)) { return(files); } return(new string[0]); }
public override string ToString() { var sb = new StringBuilder("SearchSquareMembersRequest("); bool __first = true; if (SquareMid != null && __isset.squareMid) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("SquareMid: "); sb.Append(SquareMid); } if (SearchOption != null && __isset.searchOption) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("SearchOption: "); sb.Append(SearchOption == null ? "<null>" : SearchOption.ToString()); } if (ContinuationToken != null && __isset.continuationToken) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("ContinuationToken: "); sb.Append(ContinuationToken); } if (__isset.limit) { if (!__first) { sb.Append(", "); } __first = false; sb.Append("Limit: "); sb.Append(Limit); } sb.Append(")"); return(sb.ToString()); }
/* * /// <summary> * /// 获取指定文件下所有【文件的全名称】, * /// 可以获取子文件夹 * /// </summary> * /// <param name="strFolder">指定目录</param> * /// <param name="strRegesText">正则指定搜索条件,0为搜索xlsx文件,"\S\.xlsx$"表示 </param> * /// <param name="blIsSearchSubfolder">是否搜索子文件夹,1搜索,0不搜索。默认不搜索</param> * /// <returns>返回搜索到的文件全名数组</returns> * public static string[] GetAllFiles(string strFolder, string strRegesText, bool blIsSearchSubfolder = false) * { * string[] files; * if (strRegesText == null | strRegesText == "0") * { * strRegesText = @"\S\.xlsx$"; * } * * if (blIsSearchSubfolder)//搜索子文件夹 * { * files = Directory.EnumerateFiles(strFolder, "*", SearchOption.AllDirectories).Where(s => isContainsText(s, strRegesText)).ToArray(); * } * else * { * files = Directory.EnumerateFiles(strFolder).Where(s => isContainsText(s, strRegesText)).ToArray(); * } * * return files; * } * /// <summary> * /// 获取指定文件下所有【文件夹】的名称, * /// 可以获取子文件夹 * /// </summary> * /// <param name="strFolder">指定目录</param> * /// <param name="strRegesText">正则指定搜索条件 </param> * /// <param name="blIsSearchSubfolder">是否搜索子文件夹,1搜索,0不搜索。默认不搜索</param> * /// <returns>返回搜索到的文件全名数组</returns> * public static string[] GetAllFolders(string strFolder, string strRegesText, bool blIsSearchSubfolder = false) * { * string[] files; * if (string.IsNullOrEmpty(strRegesText.ToString().Trim())) * { * strRegesText = string.Empty; * * } * * if (blIsSearchSubfolder)//搜索子文件夹 * { * files = Directory.EnumerateDirectories(strFolder, "*", SearchOption.AllDirectories).Where(s => isContainsText(s, strRegesText)).ToArray(); * } * else * { * files = Directory.EnumerateDirectories(strFolder).Where(s => isContainsText(s, strRegesText)).ToArray(); * } * * return files; * } * private static bool isContainsText(string s, string containstext) * { * if (string.IsNullOrEmpty(containstext)) * { * return true; * } * else * { * return System.Text.RegularExpressions.Regex.IsMatch(s, containstext); * } * } */ /// <summary> /// 读取文件到字典 /// </summary> /// <param name="pathString">指定路径</param> /// <param name="extension">扩展名</param> /// <param name="searchOption">搜索子目录还是不搜索</param> /// <param name="errorString">错误码</param> /// <returns></returns> public static Dictionary <string, List <string> > GetFileInfo(string pathString, string extension, SearchOption searchOption, out string errorString) { errorString = null; string fileInFokey = pathString + @"(." + extension + @")" + searchOption.ToString(); if (AppValues.AllFileInfos.ContainsKey(fileInFokey))//如果存在就直接返回 { return(AppValues.AllFileInfos[fileInFokey]); } //如果不存在就进行添加 AppValues.AllFileInfos.Add(fileInFokey, new Dictionary <string, List <string> >()); string[] filePaths = Directory.GetFiles(pathString, "*." + extension, searchOption); foreach (string filepath in filePaths) { string filename = Path.GetFileNameWithoutExtension(filepath); if (AppValues.AllFileInfos[fileInFokey].ContainsKey(filename)) { AppValues.AllFileInfos[fileInFokey][filename].Add(filepath); } else { AppValues.AllFileInfos[fileInFokey].Add(filename, new List <string> { filepath }); } } foreach (KeyValuePair <string, List <string> > kvp in AppValues.AllFileInfos[fileInFokey]) { if (kvp.Value.Count > 1) { errorString = errorString + "\n\n存在同名" + extension + "文件:" + kvp.Key + ",位置如下:"; foreach (string st in kvp.Value) { errorString = errorString + "\n" + st; } } } return(AppValues.AllFileInfos[fileInFokey]); }
public void AddFilesForPath(string path, string searchPattern, SearchOption searchOption, params string[] files) { string key = path + searchPattern + searchOption.ToString(); enumeratedFiles[key] = files; }
private string BuildSearchOptionsValue(SearchOption options) { string value = options.ToString(); return(value.Replace(", ", "+")); }
public ConnectionBuilder SearchOption(SearchOption searchOption) { _connection.SearchOption = searchOption.ToString(); return this; }
public ConnectionBuilder SearchOption(SearchOption searchOption) { _connection.SearchOption = searchOption.ToString(); return(this); }
protected override IEnumerable<string> EnumerateFiles (string path, string searchPattern, SearchOption searchOption) { IEnumerable<string> files; string key = path + searchPattern + searchOption.ToString (); if (enumeratedFiles.TryGetValue (key, out files)) { return files; } return new string[0]; }
public void AddFilesForPath (string path, string searchPattern, SearchOption searchOption, params string[] files) { string key = path + searchPattern + searchOption.ToString (); enumeratedFiles[key] = files; }
private string BuildSearchOptionsValue(SearchOption options) { string value = options.ToString(); return value.Replace(", ", "+"); }