public FileSystemItem(Guid key, string name, FileSystemFolder parentFolder = null)
        {
            if (key == default(Guid))
            {
                throw new ArgumentNullException(nameof(key));
            }

            ValidateFileSystemName(name);

            Key  = key;
            Name = name;

            if (HasParent && parentFolder == null)
            {
                throw new ArgumentNullException(nameof(parentFolder));
            }
            if (!HasParent && parentFolder != null)
            {
                throw new ArgumentException($"{Kind} cannot have a parent folder");
            }

            ParentFolder = parentFolder;

            if (HasParent)
            {
                ParentFolder.AddChildItem(this);
            }
        }
 public FileSystemFile(Guid key, string name, FileSystemFolder parentFolder)
     : base(key, name, parentFolder)
 {
 }