Esempio n. 1
0
        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);
        }
Esempio n. 2
0
    /// <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]);
    }
Esempio n. 3
0
        private bool IsValidSearchOption(SearchOption searchOption, string fullFilePath)
        {
            if (!FilePathContainsASearchOption(fullFilePath))
            {
                return(true);
            }

            return(fullFilePath.ToLower().Contains(searchOption.ToString().ToLower()));
        }
Esempio n. 4
0
        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]);
        }
Esempio n. 5
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());
    }
Esempio n. 6
0
    /*
     * /// <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]);
    }
Esempio n. 7
0
        public void AddFilesForPath(string path, string searchPattern, SearchOption searchOption, params string[] files)
        {
            string key = path + searchPattern + searchOption.ToString();

            enumeratedFiles[key] = files;
        }
Esempio n. 8
0
        private string BuildSearchOptionsValue(SearchOption options)
        {
            string value = options.ToString();

            return(value.Replace(", ", "+"));
        }
 public ConnectionBuilder SearchOption(SearchOption searchOption) {
     _connection.SearchOption = searchOption.ToString();
     return this;
 }
Esempio n. 10
0
 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;
		}
Esempio n. 13
0
 private string BuildSearchOptionsValue(SearchOption options)
 {
     string value = options.ToString();
     return value.Replace(", ", "+");
 }