Exemplo n.º 1
0
        public void MoveTo(IFile destination)
        {
            if (destination == null)
            {
                throw new ArgumentNullException(nameof(destination));
            }

            // Use the file system APIs if destination is also in the file system
            if (destination is LocalFile)
            {
                LocalFileProvider.Retry(() => _file.MoveTo(destination.Path.FullPath));
            }
            else
            {
                // Otherwise use streams to perform the move
                using (Stream sourceStream = OpenRead())
                {
                    using (Stream destinationStream = destination.OpenWrite())
                    {
                        sourceStream.CopyTo(destinationStream);
                    }
                }
                Delete();
            }
        }
Exemplo n.º 2
0
        public void CopyTo(IFile destination, bool overwrite = true, bool createDirectory = true)
        {
            if (destination == null)
            {
                throw new ArgumentNullException(nameof(destination));
            }

            // Create the directory
            if (createDirectory)
            {
                destination.Directory.Create();
            }

            // Use the file system APIs if destination is also in the file system
            if (destination is LocalFile)
            {
                LocalFileProvider.Retry(() => _file.CopyTo(destination.Path.FullPath, overwrite));
            }
            else
            {
                // Otherwise use streams to perform the copy
                using (Stream sourceStream = OpenRead())
                {
                    using (Stream destinationStream = destination.OpenWrite())
                    {
                        sourceStream.CopyTo(destinationStream);
                    }
                }
            }
        }
Exemplo n.º 3
0
 public Stream OpenAppend(bool createDirectory = true)
 {
     if (createDirectory)
     {
         Directory.Create();
     }
     return(LocalFileProvider.Retry(() => _file.Open(FileMode.Append, FileAccess.Write, FileShare.ReadWrite)));
 }
Exemplo n.º 4
0
 public void WriteAllText(string contents, bool createDirectory = true)
 {
     if (createDirectory)
     {
         Directory.Create();
     }
     LocalFileProvider.Retry(() => System.IO.File.WriteAllText(_file.FullName, contents));
 }
Exemplo n.º 5
0
 public IEnumerable <IFile> GetFiles(SearchOption searchOption = SearchOption.TopDirectoryOnly) =>
 LocalFileProvider.Retry(() => _directory.GetFiles("*", searchOption).Select(file => new LocalFile(file.FullName)));
Exemplo n.º 6
0
 public IEnumerable <IDirectory> GetDirectories(SearchOption searchOption = SearchOption.TopDirectoryOnly) =>
 LocalFileProvider.Retry(() => _directory.GetDirectories("*", searchOption).Select(directory => new LocalDirectory(directory.FullName)));
Exemplo n.º 7
0
 public void Delete(bool recursive) => LocalFileProvider.Retry(() => _directory.Delete(recursive));
Exemplo n.º 8
0
 public void Create() => LocalFileProvider.Retry(() => _directory.Create());
Exemplo n.º 9
0
 public Stream OpenRead() =>
 LocalFileProvider.Retry(() => _file.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite));
Exemplo n.º 10
0
 public string ReadAllText() =>
 LocalFileProvider.Retry(() => System.IO.File.ReadAllText(_file.FullName));
Exemplo n.º 11
0
 public void Delete() => LocalFileProvider.Retry(() => _file.Delete());