示例#1
0
        /// <inheritdoc/>
        public override void CreateDirectory(string url)
        {
            var path = ConvertUrlToFullPath(url);

            try
            {
                NativeFile.DirectoryCreate(path);
            }
            catch (Exception ex)
            {
                throw new InvalidOperationException("Unable to create directory [{0}]".ToFormat(path), ex);
            }
        }
示例#2
0
        /// <inheritdoc/>
        public override void FileMove(string sourceUrl, IVirtualFileProvider destinationProvider, string destinationUrl)
        {
            var fsProvider = destinationProvider as FileSystemProvider;

            if (fsProvider != null)
            {
                destinationProvider.CreateDirectory(destinationUrl.Substring(0, destinationUrl.LastIndexOf(VirtualFileSystem.DirectorySeparatorChar)));
                NativeFile.FileMove(ConvertUrlToFullPath(sourceUrl), fsProvider.ConvertUrlToFullPath(destinationUrl));
            }
            else
            {
                using (Stream sourceStream = OpenStream(sourceUrl, VirtualFileMode.Open, VirtualFileAccess.Read),
                       destinationStream = destinationProvider.OpenStream(destinationUrl, VirtualFileMode.CreateNew, VirtualFileAccess.Write))
                {
                    sourceStream.CopyTo(destinationStream);
                }
                NativeFile.FileDelete(sourceUrl);
            }
        }
示例#3
0
        public override bool DirectoryExists(string url)
        {
            var path = ConvertUrlToFullPath(url);

            return(NativeFile.DirectoryExists(path));
        }
示例#4
0
 /// <inheritdoc/>
 public override void FileMove(string sourceUrl, string destinationUrl)
 {
     NativeFile.FileMove(ConvertUrlToFullPath(sourceUrl), ConvertUrlToFullPath(destinationUrl));
 }
示例#5
0
 /// <inheritdoc/>
 public override void FileDelete(string url)
 {
     NativeFile.FileDelete(ConvertUrlToFullPath(url));
 }
示例#6
0
 public override long FileSize(string url)
 {
     return(NativeFile.FileSize(ConvertUrlToFullPath(url)));
 }
示例#7
0
 /// <inheritdoc/>
 public override bool FileExists(string url)
 {
     return(NativeFile.FileExists(ConvertUrlToFullPath(url)));
 }