public static string CheckExtension() { var selectExtension = SystemConsole.GetInputStr("请输入文件后缀[如\"cs,cpp\"]:"); return((string.IsNullOrEmpty(selectExtension) || selectExtension == "*.*") ? "*.*" : string.Join("|", selectExtension.Split(',', '|').Select(p => "." + p.TrimStart('*').TrimStart('.')).ToArray())); }
/// <summary> /// 默认1000毫秒循环一次 /// </summary> /// <param name="paths"></param> /// <param name="callAction"></param> /// <param name="millisecondsTimeout"></param> public static void ForEachPathsAndSleep(this IEnumerable <string> paths, Action <string> callAction, int millisecondsTimeout = 1000) { paths.Select(p => p.Replace("\\", "/")).ToList().ForEach((p, i, target) => { System.Threading.Thread.Sleep(millisecondsTimeout); SystemConsole.SetProgress(p, ((float)i) / target.Count); callAction(p); }); SystemConsole.ClearProgress(); }
public static void ForEachPaths(this IEnumerable <string> paths, Action <string> callAction) { paths.Select(p => p.Replace("\\", "/").TrimStart('/')).ToList().ForEach((p, i, target) => { SystemConsole.SetProgress(string.Format("is now : {0} {1}", (((float)i) / target.Count).ToString("p"), p)); //Console.WriteLine("is now : " + (((float) i)/target.Count).ToString("p") + "\t" + p); if (File.Exists(p)) { callAction(p); } }); }
public static List <string> CheckPath(string selectExtension = "*.*", SearchOption searchOption = SearchOption.AllDirectories) { if (string.IsNullOrEmpty(selectExtension)) { selectExtension = SystemConsole.GetInputStr("请输入文件后缀 ('.cs'):"); } var selectExtensions = (string.IsNullOrEmpty(selectExtension) || selectExtension == "*.*") ? new string[0] : selectExtension.Split(',', '|').Select(p => "." + p.TrimStart('*').TrimStart('.')).ToArray(); string path = SystemConsole.GetInputStr( beforeTip: string.Format("请拖入文件夹或文件({0}):", selectExtension), afterTip: "您选择的文件夹或文件:"); List <string> files = new List <string>(); if (string.IsNullOrEmpty(path)) { return(files); } InputPath = path.Replace("\\", "/").TrimEnd('/'); if (Directory.Exists(path)) { files.AddRange(DirectoryHelper.GetFiles(path, selectExtensions, searchOption)); } else if (File.Exists(path)) { if (selectExtensions.Contains(Path.GetExtension(path))) { files.Add(path); } if (selectExtensions.Length == 0) { files.Add(path); } } else { Console.WriteLine("path is not valid!"); } files.Sort(); return(files.Select(p => p.Replace("\\", "/")).ToList()); }