示例#1
0
        NPath CopyWithDeterminedDestination(NPath absoluteDestination, Func <NPath, bool> fileFilter)
        {
            if (absoluteDestination.IsRelative)
            {
                throw new ArgumentException("absoluteDestination must be absolute");
            }

            if (FileExists())
            {
                if (!fileFilter(absoluteDestination))
                {
                    return(null);
                }

                absoluteDestination.EnsureParentDirectoryExists();

                File.Copy(ToString(), absoluteDestination.ToString(), true);
                return(absoluteDestination);
            }

            if (DirectoryExists())
            {
                absoluteDestination.EnsureDirectoryExists();
                foreach (var thing in Contents())
                {
                    thing.CopyWithDeterminedDestination(absoluteDestination.Combine(thing.RelativeTo(this)), fileFilter);
                }
                return(absoluteDestination);
            }

            throw new ArgumentException("Copy() called on path that doesnt exist: " + ToString());
        }
示例#2
0
文件: NiceIO.cs 项目: liszto/NiceIO
 public static IEnumerable<NPath> Move(this IEnumerable<NPath> self, NPath dest)
 {
     if (dest.IsRelative)
         throw new ArgumentException("When moving multiple files, the destination cannot be a relative path");
     dest.EnsureDirectoryExists();
     return self.Select(p => p.Move(dest.Combine(p.FileName))).ToArray();
 }
示例#3
0
文件: NiceIO.cs 项目: mrvoorhe/NiceIO
 public static IEnumerable <NPath> Move(this IEnumerable <NPath> self, NPath dest)
 {
     if (dest.IsRelative)
     {
         throw new ArgumentException("When moving multiple files, the destination cannot be a relative path");
     }
     dest.EnsureDirectoryExists();
     return(self.Select(p => p.Move(dest.Combine(p.FileName))).ToArray());
 }
示例#4
0
文件: NiceIO.cs 项目: naruse/NiceIO
        public NPath Copy(NPath dest, Func <NPath, bool> fileFilter)
        {
            ThrowIfRelative();
            if (dest.IsRelative)
            {
                dest = Parent().Combine(dest);
            }

            if (dest.DirectoryExists())
            {
                return(Copy(dest.Combine(FileName), fileFilter));
            }

            if (FileExists())
            {
                if (!fileFilter(dest))
                {
                    return(null);
                }

                dest.EnsureParentDirectoryExists();

                File.Copy(ToString(), dest.ToString(), true);
                return(dest);
            }

            if (DirectoryExists())
            {
                dest.EnsureDirectoryExists();
                foreach (var thing in Contents())
                {
                    thing.Copy(dest.Combine(thing.RelativeTo(this)), fileFilter);
                }
                return(dest);
            }

            throw new ArgumentException("Copy() called on path that doesnt exist: " + ToString());
        }
示例#5
0
 public IEnumerable<NPath> CopyFiles(NPath destination, bool recurse, Func<NPath, bool> fileFilter = null)
 {
     destination.EnsureDirectoryExists();
     return Files(recurse).Where(fileFilter ?? AlwaysTrue).Select(file => file.Copy(destination.Combine(file.RelativeTo(this)))).ToArray();
 }
示例#6
0
        NPath CopyWithDeterminedDestination(NPath absoluteDestination, Func<NPath,bool> fileFilter)
        {
            if (absoluteDestination.IsRelative)
                throw new ArgumentException ("absoluteDestination must be absolute");
            
            if (FileExists())
            {
                if (!fileFilter(absoluteDestination))
                    return null;

                absoluteDestination.EnsureParentDirectoryExists();

                File.Copy(ToString(), absoluteDestination.ToString(), true);
                return absoluteDestination;
            }

            if (DirectoryExists())
            {
                absoluteDestination.EnsureDirectoryExists();
                foreach (var thing in Contents())
                    thing.CopyWithDeterminedDestination(absoluteDestination.Combine(thing.RelativeTo(this)), fileFilter);
                return absoluteDestination;
            }

            throw new ArgumentException("Copy() called on path that doesnt exist: " + ToString());
        }
示例#7
0
 public IEnumerable <NPath> CopyFiles(NPath destination, bool recurse, Func <NPath, bool> fileFilter = null)
 {
     destination.EnsureDirectoryExists();
     return(Files(recurse).Where(fileFilter ?? AlwaysTrue).Select(file => file.Copy(destination.Combine(file.RelativeTo(this)))).ToArray());
 }