Esempio n. 1
0
 protected ContainerNode(FileSystemNodeNavigator nodeNavigator, string name, StringComparer stringComparer, DateTime?creationTimeUtc = null)
     : base(nodeNavigator, creationTimeUtc)
 {
     StringComparer = stringComparer;
     Directories    = new ChildList <DirectoryNode>(this);
     Files          = new ChildList <FileNode>(this);
     Name           = name;
 }
 public DirectoryNode(
     FileSystemNodeNavigator nodeNavigator,
     string name,
     StringComparer stringComparer,
     DateTime?creationTimUtc = null
     )
     : base(nodeNavigator, name, stringComparer, creationTimUtc)
 {
 }
 public VolumeNode(
     FileSystemNodeNavigator nodeNavigator,
     VolumeInfo volumeInfo
     )
     : base(
         nodeNavigator,
         volumeInfo.RootPathName.TrimPath(),
         volumeInfo.IsCaseSensitive ? StringComparer.Ordinal : StringComparer.OrdinalIgnoreCase)
 {
     VolumeInfo = volumeInfo;
 }
 public RootNode(FileSystemNodeNavigator nodeNavigator)
     : base(nodeNavigator, new VolumeInfo    // TODO: Default VolumeInfo
 {
     IsCaseSensitive   = true,
     DriveType         = DriveType.NoRootDirectory,
     SupportsHardLinks = true,
     RootPathName      = "/",
     IsReady           = true
 })
 {
 }
        protected internal void CreateInternal(OSPlatform platform)
        {
            Platform = platform;
            DirectorySeparatorChar = platform != OSPlatform.Windows ?'/':'\\';
            NodeNavigator          = new FileSystemNodeNavigator(PathComparer, DirectorySeparatorChar);

            Volumes = new List <VolumeNode>();
            if (platform != OSPlatform.Windows)
            {
                Volumes.Add(new RootNode(NodeNavigator));
            }

            Stub stub = new Stub(Volumes, DirectorySeparatorChar, NodeNavigator);

            Drive     = stub;
            Directory = stub;
            File      = stub;
        }
 public Stub(List <VolumeNode> volumes, char directorySeparatorChar, FileSystemNodeNavigator nodeNavigator)
 {
     _volumes = volumes;
     _directorySeparatorChar = directorySeparatorChar;
     _nodeNavigator          = nodeNavigator;
 }