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; } }
/// <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); }
/// <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; } }