Beispiel #1
0
        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)));
        }
Beispiel #2
0
        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)));
        }
Beispiel #3
0
        /// <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)));
        }
Beispiel #4
0
        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)));
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
        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());
        }
Beispiel #7
0
        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());
        }
Beispiel #8
0
        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());
        }