IOption
IOption is root interface filesystem options. (Click here)
/// <summary>
/// Interface for filesystem options.
///
/// See sub-interfaces:
/// <list type="bullet">
/// <item><see cref="IAdaptableOption"/></item>
/// <item><see cref="ISubPathOption"/></item>
/// <item><see cref="IPathInfo"/></item>
/// <item><see cref="IAutoMountOption"/></item>
/// <item><see cref="IToken"/></item>
/// <item><see cref="IOpenOption"/></item>
/// <item><see cref="IObserveOption"/></item>
/// <item><see cref="IMoveOption"/></item>
/// <item><see cref="IBrowseOption"/></item>
/// <item><see cref="ICreateDirectoryOption"/></item>
/// <item><see cref="IDeleteOption"/></item>
/// <item><see cref="IMountOption"/></item>
/// </list>
///
/// The options properties must be immutable in the implementing classes.
/// </summary>
public interface IOption
{
}
IOpenOption is capabilities of IFileSystemOpen interface. (Click here)
public interface IOpenOption : IOption
{
/// <summary>Can open file</summary>
bool CanOpen { get; }
/// <summary>Can open file for reading(</summary>
bool CanRead { get; }
/// <summary>Can open file for writing.</summary>
bool CanWrite { get; }
/// <summary>Can open and create file.</summary>
bool CanCreateFile { get; }
}
IObserveOption is capabilities of IFileSystemObserve interface. (Click here)
public interface IObserveOption : IOption
{
/// <summary>Has Observe capability.</summary>
bool CanObserve { get; }
}
IMoveOption is capabilities of IFileSystemMove interface. (Click here)
public interface IMoveOption : IOption
{
/// <summary>Can Move files within same volume.</summary>
bool CanMove { get; }
}
IBrowseOption is capabilities of IFileSystemBrowse interface. (Click here)
public interface IBrowseOption : IOption
{
/// <summary>Has Browse capability.</summary>
bool CanBrowse { get; }
/// <summary>Has GetEntry capability.</summary>
bool CanGetEntry { get; }
}
ICreateDirectoryOption is capabilities of IFileSystemCreateDirectory interface. (Click here)
public interface ICreateDirectoryOption : IOption
{
/// <summary>Has CreateDirectory capability.</summary>
bool CanCreateDirectory { get; }
}
IDeleteOption is capabilities of IFileSystemDelete interface. (Click here)
public interface IDeleteOption : IOption
{
/// <summary>Has Delete capability.</summary>
bool CanDelete { get; }
}
IMountOption is capabilities of IFileSystemMount interface. (Click here)
public interface IMountOption : IOption
{
/// <summary>Can filesystem mount other filesystems.</summary>
bool CanMount { get; }
/// <summary>Is filesystem allowed to unmount a mount.</summary>
bool CanUnmount { get; }
/// <summary>Is filesystem allowed to list mountpoints.</summary>
bool CanListMountPoints { get; }
}
IFileAttributeOption is capabilities of IFileSystemFileAttribute interface. (Click here)
public interface IFileAttributeOption : IOption
{
/// <summary>Has SetFileAttribute capability.</summary>
bool CanSetFileAttribute { get; }
}
ISubPathOption is interface for subpath option. (Click here)
public interface ISubPathOption : IOption
{
/// <summary>Sub-path.</summary>
String SubPath { get; }
}
IAutoMountOption is interface for automatic mounting of package files. (Click here)
public interface IAutoMountOption : IOption
{
/// <summary>Package loaders that can mount package files, such as .zip.</summary>
IPackageLoader[] AutoMounters { get; }
}
IPathInfo is interface for filesystem's path info options. (Click here)
public interface IPathInfo : IOption
{
/// <summary>Case sensitivity</summary>
FileSystemCaseSensitivity CaseSensitivity { get; }
/// <summary>Filesystem allows empty string "" directory names. The value of this property excludes the default empty "" root path.</summary>
bool EmptyDirectoryName { get; }
}
IAdaptableOption is interface for runtime option classes. (Click here)
/// <summary>
/// Interface for option classes that adapt to option types at runtime.
/// Also enumerates supported <see cref="IOption"/> option type interfaces.
/// </summary>
public interface IAdaptableOption : IOption, IEnumerable<KeyValuePair<Type, IOption>>
{
/// <summary>
/// Get option with type interface.
/// </summary>
/// <param name="optionInterfaceType">Subtype of <see cref="IOption"/></param>
/// <returns>Option or null</returns>
IOption GetOption(Type optionInterfaceType);
}
FileSystemOption singletons:
Flag | Description |
---|---|
Option.Join() | Takes first instance of each option. |
Option.Union() | Take union of options. |
Option.Intersection() | Take intersection of options. |
Option.ReadOnly | Read-only operations allowed, deny modification and write operations |
Option.NoOptions | No options |
Option.Path(caseSensitivity, emptyDirectoryName) | Path options |
Option.Observe | Observe is allowed. |
Option.NoObserve | Observe is not allowed |
Option.Open(canOpen, canRead, canWrite, canCreateFile) | Open options |
Option.OpenReadWriteCreate | Open, Read, Write, Create |
Option.OpenReadWrite | Open, Read, Write |
Option.OpenRead | Open, Read |
Option.NoOpen | No access |
Option.Mount | Mount is allowed. |
Option.NoMount | Mount is not allowed |
Option.Move | Move and rename is allowed. |
Option.NoMove | Move and rename not allowed. |
Option.Delete | Delete allowed. |
Option.NoDelete | Delete not allowed. |
Option.CreateDirectory | CreateDirectory allowed. |
Option.NoCreateDirectory | CreateDirectory not allowed. |
Option.Browse | Browse allowed. |
Option.NoBrowse | Browse not allowed. |
Option.SubPath(subpath) | Create option for sub-path. Used with decorator and VirtualFileSystem. |
Option.NoSubPath | No mount path. |