public File[] ListFiles(IFilenameFilter filter) { String[] ss = List(); if (ss == null) { return(null); } List <File> v = new List <File>(); for (int i = 0; i < ss.Length; i++) { if ((filter == null) || filter.Accept(this, ss[i])) { v.Add(new File(ss[i], this)); } } return(v.ToArray()); }
/// <summary> /// Get last modified time on a single file or recurse if /// the file is a directory. /// </summary> /// <param name="f">file or directory</param> /// <param name="scanInfoMap">map of filenames to last modified times</param> void ScanFile(FileInfo f, Dictionary <string, long> scanInfoMap) { if (IsStopping || IsStopped) { // stop if no longer running return; } try { if (!f.Exists) { return; } if (!f.IsDirectory()) { if ((_filter == null) || ((_filter != null) && _filter.Accept(f.Directory, f.Name))) { string name = f.FullName; long lastModified = f.LastWriteTimeUtc.Ticks; scanInfoMap.Add(name, lastModified); } } else if (f.IsDirectory() && (_recursive || _scanDirs.Contains(f))) { FileInfo[] files = (new DirectoryInfo(f.FullName)).GetFiles(); for (int i = 0; i < files.Length; i++) { if (IsStopping || IsStopped) { // stop if no longer running return; } ScanFile(files[i], scanInfoMap); } } } catch (IOException e) { Log.Warn("Error scanning watched files", e); } }
public string[] List(IFilenameFilter filter) { try { if (IsFile()) { return(null); } List <string> list = new List <string> (); foreach (string filePth in Directory.GetFileSystemEntries(_path)) { string fileName = Path.GetFileName(filePth); if ((filter == null) || filter.Accept(this, fileName)) { list.Add(fileName); } } return(list.ToArray()); } catch { return(null); } }
public string[] List (IFilenameFilter filter) { try { if (IsFile ()) return null; List<string> list = new List<string> (); foreach (string filePth in Directory.GetFileSystemEntries (_path)) { string fileName = Path.GetFileName (filePth); if ((filter == null) || filter.Accept (this, fileName)) { list.Add (fileName); } } return list.ToArray (); } catch { return null; } }
public File[] ListFiles(IFilenameFilter filter) { String[] ss = List(); if (ss == null) return null; List<File> v = new List<File>(); for (int i = 0; i < ss.Length; i++) { if ((filter == null) || filter.Accept(this, ss[i])) { v.Add(new File(ss[i], this)); } } return v.ToArray(); }