public VirtualFileStream(IVirtualFileDataAccessor VirtualFileDataAccessor, string path, StreamType streamType) { if (VirtualFileDataAccessor == null) { throw new ArgumentNullException("VirtualFileDataAccessor"); } this.VirtualFileDataAccessor = VirtualFileDataAccessor; this.path = path; if (VirtualFileDataAccessor.FileExists(path)) { /* only way to make an expandable MemoryStream that starts with a particular content */ var data = VirtualFileDataAccessor.GetFile(path).Contents; if (data != null && data.Length > 0) { Write(data, 0, data.Length); Seek(0, StreamType.APPEND.Equals(streamType) ? SeekOrigin.End : SeekOrigin.Begin); } } else { if (StreamType.READ.Equals(streamType)) { throw new FileNotFoundException("File not found.", path); } VirtualFileDataAccessor.AddFile(path, new VirtualFileData(new byte[] { })); } }
private List <TreeNode> InitializeFileSystemTree(IVirtualFileDataAccessor fileSystem) { var driveNodes = new List <TreeNode>(); var drives = fileSystem.DriveInfo.GetDrives(); foreach (var drive in drives) { TreeNode driveNode = new TreeNode { Name = drive.Name, Text = $@"Локальный диск {drive.Name}", SelectedImageIndex = 2, ImageIndex = 2 }; var subfolders = CreateFolderTree(new VirtualDirectoryInfo(fileSystem, drive.Name)); foreach (var subfolder in subfolders) { driveNode.Nodes.Add(subfolder); } driveNodes.Add(driveNode); } return(driveNodes); }
/// <summary> /// Initializes a new instance of the <see cref="VirtualDirectoryInfo"/> class. /// </summary> /// <param name="VirtualFileDataAccessor">The Virtual file data accessor.</param> /// <param name="directoryPath">The directory path.</param> /// <exception cref="ArgumentNullException">Thrown if <paramref name="VirtualFileDataAccessor"/> or <paramref name="directoryPath"/> is <see langref="null"/>.</exception> public VirtualDirectoryInfo(IVirtualFileDataAccessor VirtualFileDataAccessor, string directoryPath) { this.VirtualFileDataAccessor = VirtualFileDataAccessor ?? throw new ArgumentNullException("VirtualFileDataAccessor"); directoryPath = VirtualFileDataAccessor.Path.GetFullPath(directoryPath); this.directoryPath = EnsurePathEndsWithDirectorySeparator(directoryPath); }
public VirtualPath(IVirtualFileDataAccessor VirtualFileDataAccessor) { if (VirtualFileDataAccessor == null) { throw new ArgumentNullException("VirtualFileDataAccessor"); } this.VirtualFileDataAccessor = VirtualFileDataAccessor; }
public VirtualFileInfoFactory(IVirtualFileDataAccessor VirtualFileSystem) { if (VirtualFileSystem == null) { throw new ArgumentNullException("VirtualFileSystem"); } this.VirtualFileSystem = VirtualFileSystem; }
public VirtualFileInfo(IVirtualFileDataAccessor VirtualFileSystem, string path) { if (VirtualFileSystem == null) { throw new ArgumentNullException("VirtualFileSystem"); } this.VirtualFileSystem = VirtualFileSystem; this.path = path; }
public VirtualDriveInfo(IVirtualFileDataAccessor virtualFileDataAccessor, string name) { if (virtualFileDataAccessor == null) { throw new ArgumentNullException(nameof(virtualFileDataAccessor)); } if (name == null) { throw new ArgumentNullException("name"); } const string DRIVE_SEPARATOR = @":\"; if (name.Length == 1) { name = char.ToUpperInvariant(name[0]) + DRIVE_SEPARATOR; } else if (name.Length == 2 && name[1] == ':') { name = char.ToUpperInvariant(name[0]) + DRIVE_SEPARATOR; } else if (name.Length == 3 && name.EndsWith(DRIVE_SEPARATOR, StringComparison.Ordinal)) { name = char.ToUpperInvariant(name[0]) + DRIVE_SEPARATOR; } else { VirtualPath.CheckInvalidPathChars(name); name = virtualFileDataAccessor.Path.GetPathRoot(name); if (string.IsNullOrEmpty(name) || name.StartsWith(@"\\", StringComparison.Ordinal)) { throw new ArgumentException( @"Object must be a root directory (""C:\"") or a drive letter (""C"")."); } } this._virtualFileDataAccessor = virtualFileDataAccessor; Name = name; IsReady = true; }
public VirtualDirectory(IVirtualFileDataAccessor VirtualFileDataAccessor, FileBase fileBase, string currentDirectory) { this.currentDirectory = currentDirectory; this.VirtualFileDataAccessor = VirtualFileDataAccessor ?? throw new ArgumentNullException("VirtualFileDataAccessor"); this.fileBase = fileBase; }
internal PathVerifier(IVirtualFileDataAccessor virtualFileDataAccessor) { _virtualFileDataAccessor = virtualFileDataAccessor ?? throw new ArgumentNullException(nameof(virtualFileDataAccessor)); }
public VirtualDirectoryInfoFactory(IVirtualFileDataAccessor VirtualFileSystem) { this.VirtualFileSystem = VirtualFileSystem; }