/// <summary> /// Initializes a new instance of the <see cref="InMemoryFileSystem"/> class. /// </summary> /// <param name="fileSystemEntryComparer">The file system entry name comparer.</param> public InMemoryFileSystem(StringComparer fileSystemEntryComparer) { Root = new InMemoryDirectoryEntry( null, string.Empty, new Dictionary <string, IUnixFileSystemEntry>(fileSystemEntryComparer)); FileSystemEntryComparer = fileSystemEntryComparer; }
/// <summary> /// Initializes a new instance of the <see cref="InMemoryDirectoryEntry"/> class. /// </summary> /// <param name="parent">The parent entry.</param> /// <param name="name">The name of this entry.</param> /// <param name="children">The children of this directory entry.</param> public InMemoryDirectoryEntry( InMemoryDirectoryEntry parent, string name, IDictionary <string, IUnixFileSystemEntry> children) : base(parent, name, _defaultPermissions) { Children = children; }
/// <summary> /// Initializes a new instance of the <see cref="InMemoryFileEntry"/> class. /// </summary> /// <param name="parent">The parent entry.</param> /// <param name="name">The name of this entry.</param> /// <param name="data">The file data.</param> public InMemoryFileEntry( InMemoryDirectoryEntry parent, string name, byte[] data) : base(parent, name, _defaultPermissions) { Data = data; }
/// <summary> /// Initializes a new instance of the <see cref="InMemoryFileEntry"/> class. /// </summary> /// <param name="fileSystem">The file system this entry belongs to.</param> /// <param name="parent">The parent entry.</param> /// <param name="name">The name of this entry.</param> /// <param name="data">The file data.</param> public InMemoryFileEntry( IUnixFileSystem fileSystem, InMemoryDirectoryEntry parent, string name, byte[] data) : base(fileSystem, parent, name, _defaultPermissions) { Data = data; }
/// <summary> /// Initializes a new instance of the <see cref="InMemoryFileSystemEntry"/> class. /// </summary> /// <param name="parent">The parent entry.</param> /// <param name="name">The name of this entry.</param> /// <param name="permissions">The permissions of this entry.</param> protected InMemoryFileSystemEntry( InMemoryDirectoryEntry parent, string name, IUnixPermissions permissions) { Name = name; Permissions = permissions; Parent = parent; Owner = "owner"; Group = "group"; CreatedTime = DateTimeOffset.Now; }
/// <inheritdoc /> public Task <IUnixDirectoryEntry> CreateDirectoryAsync( IUnixDirectoryEntry targetDirectory, string directoryName, CancellationToken cancellationToken) { var dirEntry = (InMemoryDirectoryEntry)targetDirectory; var childEntry = new InMemoryDirectoryEntry( dirEntry, directoryName, new Dictionary <string, IUnixFileSystemEntry>(FileSystemEntryComparer)); dirEntry.Children.Add(directoryName, childEntry); var now = DateTimeOffset.Now; dirEntry.SetLastWriteTime(now) .SetCreateTime(now); return(Task.FromResult <IUnixDirectoryEntry>(childEntry)); }