VirtualStorageLibrary
Search Results for

    Show / Hide Table of Contents

    Class VirtualStorage<T>

    Manages virtual storage containing user-defined type T item data.

    Inheritance
    object
    VirtualStorage<T>
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: AkiraNetwork.VirtualStorageLibrary
    Assembly: VirtualStorageLibrary.dll
    Syntax
    public class VirtualStorage<T>
    Type Parameters
    Name Description
    T

    The user-defined type within the virtual storage

    Constructors

    VirtualStorage()

    Initializes a new instance of the VirtualStorage class.

    Declaration
    public VirtualStorage()

    Properties

    CurrentPath

    Gets or sets the current virtual path.

    Declaration
    public VirtualPath CurrentPath { get; }
    Property Value
    Type Description
    VirtualPath

    The current virtual path

    CycleDetectorForTarget

    Gets the cycle detector class used for the WalkPathToTarget method.

    Declaration
    public VirtualCycleDetector CycleDetectorForTarget { get; }
    Property Value
    Type Description
    VirtualCycleDetector

    An instance of the cycle detector class

    CycleDetectorForTree

    Gets the cycle detector class used for the WalkPathTree method.

    Declaration
    public VirtualCycleDetector CycleDetectorForTree { get; }
    Property Value
    Type Description
    VirtualCycleDetector

    An instance of the cycle detector class

    this[VirtualPath, bool]

    Gets or sets the virtual node corresponding to the specified virtual path.

    Declaration
    public VirtualDirectory this[VirtualPath path, bool followLinks = true] { get; set; }
    Parameters
    Type Name Description
    VirtualPath path

    The virtual path

    bool followLinks

    Flag indicating whether to follow symbolic links

    Property Value
    Type Description
    VirtualDirectory

    The virtual node corresponding to the specified virtual path

    Item

    Gets the adapter providing operations for virtual items.

    Declaration
    public VirtualItemAdapter<T> Item { get; }
    Property Value
    Type Description
    VirtualItemAdapter<T>

    An instance of VirtualItemAdapter<T>

    Link

    Gets the adapter providing operations for virtual symbolic links.

    Declaration
    public VirtualSymbolicLinkAdapter<T> Link { get; }
    Property Value
    Type Description
    VirtualSymbolicLinkAdapter<T>

    An instance of VirtualSymbolicLinkAdapter<T>

    LinkDictionary

    Gets the link dictionary.

    Declaration
    public Dictionary<VirtualPath, HashSet<VirtualPath>> LinkDictionary { get; }
    Property Value
    Type Description
    Dictionary<VirtualPath, HashSet<VirtualPath>>

    A dictionary representing the link mappings.

    Root

    Gets the root directory of the virtual storage.

    Declaration
    public VirtualDirectory Root { get; }
    Property Value
    Type Description
    VirtualDirectory

    The root directory of the virtual storage

    Methods

    AddDirectory(VirtualPath, VirtualDirectory, bool)

    Adds a directory.

    Declaration
    public void AddDirectory(VirtualPath directoryPath, VirtualDirectory directory, bool createSubdirectories = false)
    Parameters
    Type Name Description
    VirtualPath directoryPath

    The path of the directory to add

    VirtualDirectory directory

    The VirtualDirectory to add

    bool createSubdirectories

    Indicates whether to create intermediate directories

    AddDirectory(VirtualPath, bool)

    Adds a directory.

    Declaration
    public void AddDirectory(VirtualPath path, bool createSubdirectories = false)
    Parameters
    Type Name Description
    VirtualPath path

    The path of the directory to add

    bool createSubdirectories

    Indicates whether to create intermediate directories

    AddItem(VirtualPath, VirtualItem<T>, bool)

    Adds an item.

    Declaration
    public void AddItem(VirtualPath itemDirectoryPath, VirtualItem<T> item, bool overwrite = false)
    Parameters
    Type Name Description
    VirtualPath itemDirectoryPath

    The path of the directory to add the item to

    VirtualItem<T> item

    The VirtualItem<T> to add

    bool overwrite

    Indicates whether to overwrite an existing node

    AddItem(VirtualPath, T?, bool)

    Adds an item.

    Declaration
    public void AddItem(VirtualPath itemPath, T? data = default, bool overwrite = false)
    Parameters
    Type Name Description
    VirtualPath itemPath

    The path of the item to add

    T data

    The data for the item

    bool overwrite

    Indicates whether to overwrite an existing node

    AddLinkToDictionary(VirtualPath, VirtualPath)

    Adds a new link to the link dictionary.

    Declaration
    public void AddLinkToDictionary(VirtualPath targetPath, VirtualPath linkPath)
    Parameters
    Type Name Description
    VirtualPath targetPath

    The target path of the link.

    VirtualPath linkPath

    The path of the link.

    Exceptions
    Type Condition
    ArgumentException

    Thrown if the target path is not an absolute path.

    AddNode(VirtualPath, VirtualNode, bool)

    Adds a node to the specified directory.

    Declaration
    public void AddNode(VirtualPath nodeDirectoryPath, VirtualNode node, bool overwrite = false)
    Parameters
    Type Name Description
    VirtualPath nodeDirectoryPath

    The path of the directory to add the node to

    VirtualNode node

    The VirtualNode to add

    bool overwrite

    Indicates whether to overwrite an existing node

    AddSymbolicLink(VirtualPath, VirtualPath?, bool)

    Adds a symbolic link.

    Declaration
    public void AddSymbolicLink(VirtualPath linkPath, VirtualPath? targetPath = null, bool overwrite = false)
    Parameters
    Type Name Description
    VirtualPath linkPath

    The path of the symbolic link

    VirtualPath targetPath

    The path of the target

    bool overwrite

    Indicates whether to overwrite an existing node

    AddSymbolicLink(VirtualPath, VirtualSymbolicLink, bool)

    Adds a symbolic link.

    Declaration
    public void AddSymbolicLink(VirtualPath linkDirectoryPath, VirtualSymbolicLink link, bool overwrite = false)
    Parameters
    Type Name Description
    VirtualPath linkDirectoryPath

    The path of the directory to add the symbolic link to

    VirtualSymbolicLink link

    The VirtualSymbolicLink to add

    bool overwrite

    Indicates whether to overwrite an existing node

    ChangeDirectory(VirtualPath)

    Changes the current working directory.

    Declaration
    public void ChangeDirectory(VirtualPath path)
    Parameters
    Type Name Description
    VirtualPath path

    The path of the new working directory

    ConvertToAbsolutePath(VirtualPath?, VirtualPath?)

    Converts a relative path to an absolute path.

    Declaration
    public VirtualPath ConvertToAbsolutePath(VirtualPath? relativePath, VirtualPath? basePath = null)
    Parameters
    Type Name Description
    VirtualPath relativePath

    The relative path.

    VirtualPath basePath

    The base path. If not specified, CurrentPath is used.

    Returns
    Type Description
    VirtualPath

    The absolute path represented by VirtualPath.

    Exceptions
    Type Condition
    ArgumentException

    Thrown if relativePath is null or an empty string.

    CopyNode(VirtualPath, VirtualPath, bool, bool, bool, List<VirtualNodeContext>?)

    Copies the node at the specified path.

    Declaration
    public void CopyNode(VirtualPath sourcePath, VirtualPath destinationPath, bool overwrite = false, bool recursive = false, bool followLinks = false, List<VirtualNodeContext>? destinationContextList = null)
    Parameters
    Type Name Description
    VirtualPath sourcePath

    The source path of the copy.

    VirtualPath destinationPath

    The destination path of the copy.

    bool overwrite

    Whether to overwrite existing nodes.

    bool recursive

    Whether to copy recursively.

    bool followLinks

    Whether to follow symbolic links.

    List<VirtualNodeContext> destinationContextList

    List of destination contexts.

    Exceptions
    Type Condition
    VirtualNodeNotFoundException

    Thrown if the source node is not found.

    InvalidOperationException

    Thrown if the source and destination paths are the same or if a recursive copy would result in a circular reference.

    DirectoryExists(VirtualPath, bool)

    Checks if a directory exists at the specified path.

    Declaration
    public bool DirectoryExists(VirtualPath path, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualPath path

    The directory's path.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    bool

    True if the directory exists; otherwise, false.

    ExpandPath(VirtualPath, VirtualNodeTypeFilter, bool, bool)

    Expands a path that contains wildcards.

    Declaration
    public IEnumerable<VirtualPath> ExpandPath(VirtualPath path, VirtualNodeTypeFilter filter = VirtualNodeTypeFilter.All, bool followLinks = true, bool resolveLinks = true)
    Parameters
    Type Name Description
    VirtualPath path

    The path.

    VirtualNodeTypeFilter filter

    The node type filter.

    bool followLinks

    Whether to follow symbolic links.

    bool resolveLinks

    Whether to resolve symbolic links.

    Returns
    Type Description
    IEnumerable<VirtualPath>

    The expanded paths IEnumerable<T>.

    Remarks

    followLinks indicates whether to follow links during the recursive traversal of nodes when the terminal node of the path is a symbolic link.

    resolveLinks indicates whether to resolve links when non-terminal nodes of the path are symbolic links.

    ExpandPathTree(VirtualPath, VirtualNodeTypeFilter, bool, bool)

    Expands the virtual path containing wildcards.

    Declaration
    public IEnumerable<VirtualNodeContext> ExpandPathTree(VirtualPath path, VirtualNodeTypeFilter filter = VirtualNodeTypeFilter.All, bool followLinks = true, bool resolveLinks = true)
    Parameters
    Type Name Description
    VirtualPath path

    The virtual path containing wildcards

    VirtualNodeTypeFilter filter

    The filter to apply for node types

    bool followLinks

    A flag indicating whether to follow symbolic links

    bool resolveLinks

    A flag indicating whether to resolve symbolic links

    Returns
    Type Description
    IEnumerable<VirtualNodeContext>

    An enumerable of VirtualNodeContext containing information about the expanded nodes

    Remarks

    followLinks indicates whether to follow links during the recursive traversal process when the terminal node in the virtual path is a symbolic link.

    resolveLinks indicates whether to resolve links when nodes other than the terminal node in the virtual path are symbolic links.

    GetDirectory(VirtualPath, bool)

    Gets the directory at the specified path.

    Declaration
    public VirtualDirectory GetDirectory(VirtualPath path, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualPath path

    The path of the directory.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    VirtualDirectory

    The VirtualDirectory at the specified path.

    Exceptions
    Type Condition
    VirtualNodeNotFoundException

    Thrown if the node cannot be found.

    GetItem(VirtualPath, bool)

    Gets the item at the specified path.

    Declaration
    public VirtualItem<T> GetItem(VirtualPath path, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualPath path

    The path of the item.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    VirtualItem<T>

    The VirtualItem<T> at the specified path.

    Exceptions
    Type Condition
    VirtualNodeNotFoundException

    Thrown if the node cannot be found.

    GetLinksFromDictionary(VirtualPath)

    Retrieves all link paths associated with the specified target path from the link dictionary.

    Declaration
    public HashSet<VirtualPath> GetLinksFromDictionary(VirtualPath targetPath)
    Parameters
    Type Name Description
    VirtualPath targetPath

    The target path.

    Returns
    Type Description
    HashSet<VirtualPath>

    A set of link paths.

    GetNode(VirtualPath, bool)

    Gets the node at the specified path.

    Declaration
    public VirtualNode GetNode(VirtualPath path, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualPath path

    The node's path.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    VirtualNode

    The VirtualNode at the specified path.

    Exceptions
    Type Condition
    VirtualNodeNotFoundException

    Thrown if the node cannot be found.

    GetNodeID(VirtualPath, bool)

    Retrieves the unique identifier (VirtualID) of the node located at the specified path.

    Declaration
    public VirtualID GetNodeID(VirtualPath path, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualPath path

    The VirtualPath representing the location of the node whose VirtualID is to be retrieved.

    bool followLinks

    A boolean value indicating whether to follow symbolic links while resolving the node. If set to true, the method follows symbolic links to resolve the target node. If set to false, symbolic links are not followed. The default value is false.

    Returns
    Type Description
    VirtualID

    The VirtualID of the node located at the specified path.

    GetNodeType(VirtualPath, bool)

    Gets the node type at the specified path.

    Declaration
    public VirtualNodeType GetNodeType(VirtualPath path, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualPath path

    The node's path.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    VirtualNodeType

    The VirtualNodeType of the node.

    GetNodes(VirtualNodeTypeFilter, bool, bool)

    Gets the nodes in the path tree starting from the current path.

    Declaration
    public IEnumerable<VirtualNode> GetNodes(VirtualNodeTypeFilter nodeType = VirtualNodeTypeFilter.All, bool recursive = false, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualNodeTypeFilter nodeType

    The node type filter.

    bool recursive

    Whether to retrieve nodes recursively.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    IEnumerable<VirtualNode>

    The nodes in the path tree starting from the current path IEnumerable<T>.

    Remarks

    This method may be integrated, reorganized, or deprecated in the near future.

    GetNodes(VirtualPath, VirtualNodeTypeFilter, bool, bool)

    Gets the nodes in the path tree starting from the specified path.

    Declaration
    public IEnumerable<VirtualNode> GetNodes(VirtualPath basePath, VirtualNodeTypeFilter nodeType = VirtualNodeTypeFilter.All, bool recursive = false, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualPath basePath

    The base path.

    VirtualNodeTypeFilter nodeType

    The node type filter.

    bool recursive

    Whether to retrieve nodes recursively.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    IEnumerable<VirtualNode>

    The nodes in the path tree starting from the specified path IEnumerable<T>.

    Remarks

    This method may be integrated, reorganized, or deprecated in the near future.

    GetPaths(VirtualNodeTypeFilter, bool, bool)

    Gets the paths in the path tree starting from the current path.

    Declaration
    public IEnumerable<VirtualPath> GetPaths(VirtualNodeTypeFilter nodeType = VirtualNodeTypeFilter.All, bool recursive = false, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualNodeTypeFilter nodeType

    The node type filter.

    bool recursive

    Whether to retrieve paths recursively.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    IEnumerable<VirtualPath>

    The paths in the path tree starting from the current path IEnumerable<T>.

    Remarks

    This method may be integrated, reorganized, or deprecated in the near future.

    GetPaths(VirtualPath, VirtualNodeTypeFilter, bool, bool)

    Gets the paths in the path tree starting from the specified path.

    Declaration
    public IEnumerable<VirtualPath> GetPaths(VirtualPath basePath, VirtualNodeTypeFilter nodeType = VirtualNodeTypeFilter.All, bool recursive = false, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualPath basePath

    The base path.

    VirtualNodeTypeFilter nodeType

    The node type filter.

    bool recursive

    Whether to retrieve paths recursively.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    IEnumerable<VirtualPath>

    The paths in the path tree starting from the specified path IEnumerable<T>.

    Remarks

    This method may be integrated, reorganized, or deprecated in the near future.

    GetSymbolicLink(VirtualPath)

    Gets the symbolic link at the specified path.

    Declaration
    public VirtualSymbolicLink GetSymbolicLink(VirtualPath path)
    Parameters
    Type Name Description
    VirtualPath path

    The path of the symbolic link.

    Returns
    Type Description
    VirtualSymbolicLink

    The VirtualSymbolicLink at the specified path.

    Remarks

    This method does not have a followLinks parameter because it retrieves the symbolic link itself.

    Exceptions
    Type Condition
    VirtualNodeNotFoundException

    Thrown if the node cannot be found.

    IsValidWildcardPath(VirtualPath)

    Checks if all parts of the given path are valid wildcard patterns.

    Declaration
    public bool IsValidWildcardPath(VirtualPath path)
    Parameters
    Type Name Description
    VirtualPath path

    The VirtualPath object to validate.

    Returns
    Type Description
    bool

    True if all parts of the path are valid wildcard patterns; otherwise, false.

    ItemExists(VirtualPath, bool)

    Checks if an item exists at the specified path.

    Declaration
    public bool ItemExists(VirtualPath path, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualPath path

    The item's path.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    bool

    True if the item exists; otherwise, false.

    MoveNode(VirtualPath, VirtualPath, bool, bool)

    Moves the node at the specified path to a new location.

    Declaration
    public void MoveNode(VirtualPath sourcePath, VirtualPath destinationPath, bool overwrite = false, bool resolveLinks = true)
    Parameters
    Type Name Description
    VirtualPath sourcePath

    The source path of the node.

    VirtualPath destinationPath

    The destination path for the node.

    bool overwrite

    Whether to overwrite existing nodes.

    bool resolveLinks

    Whether to resolve symbolic links.

    Remarks

    resolveLinks indicates whether to resolve links when non-terminal nodes (from the top node to the parent of the terminal node) in the path are symbolic links.

    Exceptions
    Type Condition
    InvalidOperationException

    Thrown if the source and destination paths are the same, if attempting to move the root directory, or if the destination is a subdirectory of the source.

    VirtualNodeNotFoundException

    Thrown if the source node is not found.

    NodeExists(VirtualPath, bool)

    Checks if a node exists at the specified path.

    Declaration
    public bool NodeExists(VirtualPath path, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualPath path

    The node's path.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    bool

    True if the node exists; otherwise, false.

    RefreshLinkDictionary(VirtualPath)

    Refreshes the link dictionary by updating the target path of the symbolic link at the specified path. If the link is not found in the dictionary, it will be added and the TargetNodeType will be set.

    Declaration
    public void RefreshLinkDictionary(VirtualPath linkPath)
    Parameters
    Type Name Description
    VirtualPath linkPath

    The path of the symbolic link to be used for updating the link dictionary.

    RemoveLinkByLinkPath(VirtualPath)

    Removes the link with the specified link path from the link dictionary.

    Declaration
    public void RemoveLinkByLinkPath(VirtualPath linkPath)
    Parameters
    Type Name Description
    VirtualPath linkPath

    The link path.

    Exceptions
    Type Condition
    ArgumentException

    Thrown if the link path is not an absolute path.

    RemoveLinkFromDictionary(VirtualPath, VirtualPath)

    Removes a link from the link dictionary.

    Declaration
    public void RemoveLinkFromDictionary(VirtualPath targetPath, VirtualPath linkPath)
    Parameters
    Type Name Description
    VirtualPath targetPath

    The target path.

    VirtualPath linkPath

    The path of the link.

    RemoveNode(VirtualPath, bool, bool, bool)

    Removes the node at the specified path.

    Declaration
    public void RemoveNode(VirtualPath nodePath, bool recursive = false, bool followLinks = false, bool resolveLinks = true)
    Parameters
    Type Name Description
    VirtualPath nodePath

    The path of the node to remove.

    bool recursive

    Whether to remove recursively.

    bool followLinks

    Whether to follow symbolic links.

    bool resolveLinks

    Whether to resolve link targets.

    Remarks

    If followLinks is true and the terminal node in the path is a symbolic link, the path tree after resolving the path will be removed, and the symbolic link will also be removed. If false, only the symbolic link itself is removed.

    resolveLinks indicates whether to resolve links when non-terminal nodes (from the top node to the parent of the terminal node) in the path are symbolic links.

    Exceptions
    Type Condition
    InvalidOperationException

    Thrown when trying to remove the root node or a non-empty directory.

    ResolveLinkTarget(VirtualPath)

    Resolves the target of the symbolic link at the specified path.

    Declaration
    public VirtualPath ResolveLinkTarget(VirtualPath path)
    Parameters
    Type Name Description
    VirtualPath path

    The path of the symbolic link.

    Returns
    Type Description
    VirtualPath

    The target path.

    Exceptions
    Type Condition
    VirtualNodeNotFoundException

    Thrown if the node cannot be found.

    SetLinkTargetNodeType(HashSet<VirtualPath>, VirtualNodeType)

    Sets the target node type for all symbolic links in the specified list of link paths.

    Declaration
    public void SetLinkTargetNodeType(HashSet<VirtualPath> linkPathSet, VirtualNodeType nodeType)
    Parameters
    Type Name Description
    HashSet<VirtualPath> linkPathSet

    A set of link paths.

    VirtualNodeType nodeType

    The target node type.

    SetLinkTargetPath(VirtualPath, VirtualPath)

    Sets the target path for the specified symbolic link and updates the link dictionary.

    Declaration
    public void SetLinkTargetPath(VirtualPath linkPath, VirtualPath targetPath)
    Parameters
    Type Name Description
    VirtualPath linkPath

    The path where the symbolic link is set.

    VirtualPath targetPath

    The target path referenced by the symbolic link.

    SetNode(VirtualPath, VirtualNode)

    Sets a node at the specified path.

    Declaration
    public void SetNode(VirtualPath destinationPath, VirtualNode node)
    Parameters
    Type Name Description
    VirtualPath destinationPath

    The path where the node is set

    VirtualNode node

    The VirtualNode to set

    SetNodeName(VirtualPath, VirtualNodeName, bool)

    Changes the name of a node.

    Declaration
    public void SetNodeName(VirtualPath nodePath, VirtualNodeName newName, bool resolveLinks = true)
    Parameters
    Type Name Description
    VirtualPath nodePath

    The path of the node to rename

    VirtualNodeName newName

    The new name

    bool resolveLinks

    Indicates whether to resolve symbolic links

    SymbolicLinkExists(VirtualPath)

    Checks if a symbolic link exists at the specified path.

    Declaration
    public bool SymbolicLinkExists(VirtualPath path)
    Parameters
    Type Name Description
    VirtualPath path

    The symbolic link's path.

    Returns
    Type Description
    bool

    True if the symbolic link exists; otherwise, false.

    TryGetDirectory(VirtualPath, bool)

    Tries to get the directory at the specified path.

    Declaration
    public VirtualDirectory? TryGetDirectory(VirtualPath path, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualPath path

    The path of the directory.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    VirtualDirectory

    The found VirtualDirectory, or null if not found.

    TryGetItem(VirtualPath, bool)

    Tries to get the item at the specified path.

    Declaration
    public VirtualItem<T>? TryGetItem(VirtualPath path, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualPath path

    The path of the item.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    VirtualItem<T>

    The found VirtualItem<T>, or null if not found.

    TryGetNode(VirtualPath, bool)

    Tries to get the node at the specified path.

    Declaration
    public VirtualNode? TryGetNode(VirtualPath path, bool followLinks = false)
    Parameters
    Type Name Description
    VirtualPath path

    The node's path.

    bool followLinks

    Whether to follow symbolic links.

    Returns
    Type Description
    VirtualNode

    The found VirtualNode, or null if not found.

    TryGetSymbolicLink(VirtualPath)

    Tries to get the symbolic link at the specified path.

    Declaration
    public VirtualSymbolicLink? TryGetSymbolicLink(VirtualPath path)
    Parameters
    Type Name Description
    VirtualPath path

    The path of the symbolic link.

    Returns
    Type Description
    VirtualSymbolicLink

    The found VirtualSymbolicLink, or null if not found.

    Remarks

    This method does not have a followLinks parameter because it retrieves the symbolic link itself.

    TryResolveLinkTarget(VirtualPath)

    Tries to resolve the target of the symbolic link at the specified path.

    Declaration
    public VirtualPath? TryResolveLinkTarget(VirtualPath path)
    Parameters
    Type Name Description
    VirtualPath path

    The path of the symbolic link.

    Returns
    Type Description
    VirtualPath

    The target path, or null if the node cannot be found.

    UpdateAllTargetNodeTypesInDictionary()

    Updates all target node types in the link dictionary.

    Declaration
    public void UpdateAllTargetNodeTypesInDictionary()

    UpdateDirectory(VirtualPath, VirtualDirectory)

    Updates a directory.

    Declaration
    public void UpdateDirectory(VirtualPath directoryPath, VirtualDirectory newDirectory)
    Parameters
    Type Name Description
    VirtualPath directoryPath

    The path of the directory to update

    VirtualDirectory newDirectory

    The new data for the directory

    UpdateItem(VirtualPath, VirtualItem<T>)

    Updates an item.

    Declaration
    public void UpdateItem(VirtualPath itemPath, VirtualItem<T> newItem)
    Parameters
    Type Name Description
    VirtualPath itemPath

    The path of the item to update

    VirtualItem<T> newItem

    The new data for the item

    UpdateLinkInDictionary(VirtualPath, VirtualPath)

    Updates the target path of a specific symbolic link to a new target path.

    Declaration
    public void UpdateLinkInDictionary(VirtualPath linkPath, VirtualPath newTargetPath)
    Parameters
    Type Name Description
    VirtualPath linkPath

    The path of the link.

    VirtualPath newTargetPath

    The new target path.

    UpdateLinksToTarget(VirtualPath, VirtualPath)

    Updates the target path of links with a specific target path to a new target path.

    Declaration
    public void UpdateLinksToTarget(VirtualPath oldTargetPath, VirtualPath newTargetPath)
    Parameters
    Type Name Description
    VirtualPath oldTargetPath

    The old target path.

    VirtualPath newTargetPath

    The new target path.

    UpdateSymbolicLInk(VirtualPath, VirtualSymbolicLink)

    Updates a symbolic link.

    Declaration
    public void UpdateSymbolicLInk(VirtualPath linkPath, VirtualSymbolicLink newLink)
    Parameters
    Type Name Description
    VirtualPath linkPath

    The path of the symbolic link to update

    VirtualSymbolicLink newLink

    The new data for the symbolic link

    UpdateTargetNodeTypesInDictionary(VirtualPath)

    Updates the target node types in the link dictionary.

    Declaration
    public void UpdateTargetNodeTypesInDictionary(VirtualPath targetPath)
    Parameters
    Type Name Description
    VirtualPath targetPath

    The target path.

    WalkPathToTarget(VirtualPath, NotifyNodeDelegate?, ActionNodeDelegate?, bool, bool)

    Traverses the path to the target node specified by the virtual path.

    Declaration
    public VirtualNodeContext WalkPathToTarget(VirtualPath targetPath, NotifyNodeDelegate? notifyNode = null, ActionNodeDelegate? actionNode = null, bool followLinks = true, bool exceptionEnabled = true)
    Parameters
    Type Name Description
    VirtualPath targetPath

    The target virtual path

    NotifyNodeDelegate notifyNode

    A delegate to notify information about the node when each node is reached

    ActionNodeDelegate actionNode

    A delegate to perform actions when each node is reached

    bool followLinks

    A flag indicating whether to follow symbolic links

    bool exceptionEnabled

    A flag indicating whether to enable exceptions. If true, exceptions are thrown; if false, the Node in VirtualNodeContext will be returned as null.

    Returns
    Type Description
    VirtualNodeContext

    An instance of VirtualNodeContext containing information about the target node

    WalkPathTree(VirtualPath, VirtualNodeTypeFilter, bool, bool, bool)

    Traverses the path tree starting from the specified path.

    Declaration
    public IEnumerable<VirtualNodeContext> WalkPathTree(VirtualPath basePath, VirtualNodeTypeFilter filter = VirtualNodeTypeFilter.All, bool recursive = true, bool followLinks = true, bool resolveLinks = true)
    Parameters
    Type Name Description
    VirtualPath basePath

    The base virtual path

    VirtualNodeTypeFilter filter

    The filter to apply for node types

    bool recursive

    A flag indicating whether to traverse recursively

    bool followLinks

    A flag indicating whether to follow symbolic links

    bool resolveLinks

    A flag indicating whether to resolve symbolic links

    Returns
    Type Description
    IEnumerable<VirtualNodeContext>

    An enumerable of VirtualNodeContext containing information about the traversed nodes

    Remarks

    followLinks indicates whether to follow links during the recursive traversal process when the terminal node in the virtual path is a symbolic link.

    resolveLinks indicates whether to resolve links when nodes other than the terminal node in the virtual path are symbolic links.

    Extension Methods

    VirtualTextFormatter.GenerateLinkTableDebugText<T>(VirtualStorage<T>)
    VirtualTextFormatter.GenerateSingleTableDebugText<T>(T)
    VirtualTextFormatter.GenerateTreeDebugText<T>(VirtualStorage<T>, VirtualPath, bool, bool)
    In this article
    Back to top Generated by DocFX