Пример #1
0
 public VFile(VDirectory parent, FilePermission permission, string realPath, string name)
 {
     ParentDirectory = parent;
     _permission     = permission ?? ParentDirectory.Permission;
     try
     {
         Name     = name ?? Path.GetFileName(realPath);
         RealFile = new FileInfo(realPath);
     }
     catch (Exception e)
     {
         //throw e;
         RealFile = null;
     }
 }
Пример #2
0
        /// <summary>
        /// 添加一个链接
        /// </summary>
        /// <param name="realPath">链接的真实路径</param>
        /// <param name="vPath">链接所要添加到的虚拟路径</param>
        /// <param name="name">别名,默认为原名</param>
        /// <param name="permission">权限,设为null则继承父目录权限</param>
        public bool AddLink(string realPath, string vPath, FilePermission permission = null, string name = null)
        {
            var folder = Get(vPath) as VDirectory;

            if (folder == null)
            {
                return(false);
            }
            if (File.Exists(realPath))
            {
                return(folder.AddLink(new VFile(folder, permission, realPath, name)));
            }
            else
            {
                if (Directory.Exists(realPath))
                {
                    return(folder.AddLink(new VDirectory(folder, permission, realPath, name)));
                }
            }
            return(false);
        }
Пример #3
0
        /// <summary>
        /// 虚拟文件夹
        /// </summary>
        /// <param name="permission">权限</param>
        /// <param name="parent">父目录</param>
        /// <param name="name">文件夹名</param>
        /// <param name="realPath">真实路径</param>
        public VDirectory(VDirectory parent, FilePermission permission, string realPath, string name = null)
        {
            ParentDirectory = parent;

            _permission = permission ?? ParentDirectory.Permission;
            try
            {
                Name = name ?? VPath.GetFileName(realPath);
                if (ParentDirectory == null || ParentDirectory == this)
                {
                    VirtualPath = "/";
                }
                else
                {
                    VirtualPath = VPath.Combine(ParentDirectory.VirtualPath, Name);
                }
                RealDirectory = new DirectoryInfo(realPath);
            }
            catch (Exception e)
            {
                //throw e;
                RealDirectory = null;
            }
        }