public IEnumerable <DirectoryInfo> EnumerateDirectories() { if (Common.IsRunningOnMono()) { return(SysDirectoryInfo.EnumerateDirectories().Select(s => new DirectoryInfo(s.FullName))); } return(Directory.EnumerateFileSystemEntries(FullPath, "*", true, false, System.IO.SearchOption.TopDirectoryOnly).Select(directory => new DirectoryInfo(directory))); }
public IEnumerable <FileInfo> EnumerateFiles(string searchPattern, SearchOption searchOption) { if (Common.IsRunningOnMono()) { return(SysDirectoryInfo.EnumerateFiles(searchPattern, searchOption).Select(s => new FileInfo(s.FullName))); } return(Directory.EnumerateFileSystemEntries(FullPath, searchPattern, false, true, searchOption).Select(e => new FileInfo(e))); }
/// <include path='doc/members/member[@name="M:System.IO.DirectoryInfo.EnumerateDirectories(System.String,System.IO.SearchOption)"]/*' file='..\ref\mscorlib.xml' /> public IEnumerable <DirectoryInfo> EnumerateDirectories(string searchPattern, SearchOption searchOption) { if (Common.IsRunningOnMono() && Common.IsPlatformUnix()) { return(SysDirectoryInfo.EnumerateDirectories(searchPattern, searchOption).Select(s => new DirectoryInfo(s.FullName))); } return(Directory.EnumerateFileSystemEntries(FullPath, searchPattern, true, false, searchOption) .Select(directory => new DirectoryInfo(directory))); }
public IEnumerable <FileSystemInfo> EnumerateFileSystemInfos(string searchPattern) { if (Common.IsRunningOnMono()) { return(SysDirectoryInfo.EnumerateFileSystemInfos(searchPattern) .Select(e => System.IO.Directory.Exists(e.FullName) ? (FileSystemInfo) new DirectoryInfo(e.FullName) : (FileSystemInfo) new FileInfo(e.FullName))); } return(Directory.EnumerateFileSystemEntries(FullPath, searchPattern, true, true, System.IO.SearchOption.TopDirectoryOnly) .Select(e => Directory.Exists(e) ? (FileSystemInfo) new DirectoryInfo(e) : (FileSystemInfo) new FileInfo(e))); }
public void MoveTo(string destDirName) { if (Common.IsRunningOnMono()) { SysDirectoryInfo.MoveTo(destDirName); return; } if (destDirName == null) { throw new ArgumentNullException("destDirName"); } #if NET_2_0 if (string.IsNullOrEmpty(destDirName)) #else if (string.IsNullOrWhiteSpace(destDirName)) #endif { throw new ArgumentException("Empty filename", "destDirName"); } string fullDestDirName = Path.GetFullPath(destDirName); if (!fullDestDirName.EndsWith(Path.DirectorySeparatorChar)) { fullDestDirName = fullDestDirName + Path.DirectorySeparatorChar; } String fullSourcePath; if (FullPath.EndsWith(Path.DirectorySeparatorChar)) { fullSourcePath = FullPath; } else { fullSourcePath = FullPath + Path.DirectorySeparatorChar; } if (String.Compare(fullSourcePath, fullDestDirName, StringComparison.OrdinalIgnoreCase) == 0) { throw new IOException("source and destination directories must be different"); } String sourceRoot = Path.GetPathRoot(fullSourcePath); String destinationRoot = Path.GetPathRoot(fullDestDirName); if (String.Compare(sourceRoot, destinationRoot, StringComparison.OrdinalIgnoreCase) != 0) { throw new IOException("Source and destination directories must have same root"); } File.Move(fullSourcePath, fullDestDirName); }
public FileInfo[] GetFiles() { if (Common.IsRunningOnMono()) { var files = SysDirectoryInfo.GetFiles(); var ret = new FileInfo[files.Length]; for (var index = 0; index < files.Length; index++) { ret[index] = new FileInfo(files[index].FullName); } return(ret); } return(Directory.EnumerateFileSystemEntries(FullPath, "*", false, true, System.IO.SearchOption.TopDirectoryOnly).Select(path => new FileInfo(path)).ToArray()); }
public FileSystemInfo[] GetFileSystemInfos(string searchPattern) { if (Common.IsRunningOnMono()) { var sysInfos = SysDirectoryInfo.GetFileSystemInfos(searchPattern); FileSystemInfo[] fsis = new FileSystemInfo[sysInfos.Length]; for (var i = 0; i < sysInfos.Length; i++) { var e = sysInfos[i].FullName; fsis[i] = Directory.Exists(e) ? (FileSystemInfo) new DirectoryInfo(e) : (FileSystemInfo) new FileInfo(e); } return(fsis); } return(Directory.EnumerateFileSystemEntries(FullPath, searchPattern, true, true, System.IO.SearchOption.TopDirectoryOnly) .Select(e => Directory.Exists(e) ? (FileSystemInfo) new DirectoryInfo(e) : (FileSystemInfo) new FileInfo(e)).ToArray()); }
public FileSystemInfo[] GetFileSystemInfos(string searchPattern, SearchOption searchOption) { if (Common.IsRunningOnMono()) { #if NET_4_0 || NET_4_5 return(SysDirectoryInfo.GetFileSystemInfos(searchPattern, searchOption).Select(s => s.FullName).Select(e => Directory.Exists(e) ? (FileSystemInfo) new DirectoryInfo(e) : (FileSystemInfo) new FileInfo(e)).ToArray()); #else //throw new NotImplementedException("This function is not supported in "); var fileInfos = SysDirectoryInfo.GetFiles(searchPattern); var directories = SysDirectoryInfo.GetDirectories(searchPattern); List <FileSystemInfo> fileSystemInfos = new List <FileSystemInfo>(); foreach (System.IO.FileInfo fsi in fileInfos) { fileSystemInfos.Add(new FileInfo(fsi.FullName)); } foreach (System.IO.DirectoryInfo fsi in directories) { fileSystemInfos.Add(new DirectoryInfo(fsi.FullName)); } if (searchOption != SearchOption.AllDirectories) { return(fileSystemInfos.ToArray()); } foreach (var di in SysDirectoryInfo.GetDirectories()) { fileSystemInfos.AddRange(new DirectoryInfo(di.FullName).GetFileSystemInfos(searchPattern, searchOption)); } return(fileSystemInfos.ToArray()); #endif } return(Directory.EnumerateFileSystemEntries(FullPath, searchPattern, true, true, searchOption) .Select(e => Directory.Exists(e) ? (FileSystemInfo) new DirectoryInfo(e) : (FileSystemInfo) new FileInfo(e)).ToArray()); }