/// <summary> /// Initializes a new instance of the <see cref="DotNetFileSystemFactory"/> class. /// </summary> /// <param name="options">The options for this file system</param> /// <param name="pathTraversalEngine">The engine to traverse paths</param> /// <param name="propertyStoreFactory">The store for dead properties</param> /// <param name="lockManager">The global lock manager</param> public DotNetFileSystemFactory( [NotNull] IOptions <DotNetFileSystemOptions> options, [NotNull] IPathTraversalEngine pathTraversalEngine, IPropertyStoreFactory propertyStoreFactory = null, ILockManager lockManager = null) { _pathTraversalEngine = pathTraversalEngine; _propertyStoreFactory = propertyStoreFactory; _lockManager = lockManager; _options = options.Value; }
/// <summary> /// Initializes a new instance of the <see cref="DotNetFileSystem"/> class. /// </summary> /// <param name="options">The options for this file system</param> /// <param name="mountPoint">The mount point where this file system should be included</param> /// <param name="rootFolder">The root folder</param> /// <param name="pathTraversalEngine">The engine to traverse paths</param> /// <param name="lockManager">The global lock manager</param> /// <param name="propertyStoreFactory">The store for dead properties</param> public DotNetFileSystem( [NotNull] DotNetFileSystemOptions options, [CanBeNull] ICollection mountPoint, [NotNull] string rootFolder, [NotNull] IPathTraversalEngine pathTraversalEngine, ILockManager lockManager = null, IPropertyStoreFactory propertyStoreFactory = null) { LockManager = lockManager; RootDirectoryPath = rootFolder; _pathTraversalEngine = pathTraversalEngine; Options = options; PropertyStore = propertyStoreFactory?.Create(this); var rootPath = mountPoint?.Path ?? new Uri(string.Empty, UriKind.Relative); var rootDir = new DotNetDirectory(this, mountPoint, new DirectoryInfo(rootFolder), rootPath, mountPoint?.Name ?? rootPath.GetName(), true); Root = new AsyncLazy <ICollection>(() => Task.FromResult <ICollection>(rootDir)); }