Exemplo n.º 1
0
        public bool TryCopyFile(FileEntry fromFile, UPath outputPath)
        {
            if (fromFile == null)
            {
                throw new ArgumentNullException(nameof(fromFile));
            }
            outputPath.AssertAbsolute(nameof(outputPath));

            var outputFile = new FileEntry(Site.OutputFileSystem, outputPath);

            TrackDestination(outputFile, fromFile);

            if (!outputFile.Exists || (fromFile.LastWriteTime > outputFile.LastWriteTime))
            {
                CreateDirectory(outputFile.Directory);

                if (Site.CanTrace())
                {
                    Site.Trace($"Copy file from [{fromFile} to [{outputPath}]");
                }

                fromFile.CopyTo(outputFile.FullName, true);
                return(true);
                // Update statistics
                //stat.Static = true;
                //stat.OutputBytes += fromFile.Length;
            }
            return(false);
        }
Exemplo n.º 2
0
 public static FileEntry CopyToV2(this FileEntry self, FileEntry target, bool replaceExisting)
 {
     if (self.FileSystem != target.FileSystem)
     {
         using (var t = target.OpenOrCreateForWrite()) {
             t.SetLength(0); // Reset the stream in case it was opened
             using (var s = self.OpenForRead()) { s.CopyTo(t); }
         }
         AssertV2.IsTrue(target.Exists, "Target did not exist after copy to was done: " + target);
         return(target);
     }
     return(self.CopyTo(target.Path, replaceExisting));
 }