.net实例:基于ASP.NET与XML的网络硬盘开发,2

创建文件夹及设置访问权限

  在当前路径下输入新文件夹名称来创建新文件夹,通过调用.net的IO名字空间中的类库Directory方法来实现该操作:Directory.CreateDirectory(string directory),字符串directory表示新建文件夹的完整路径,该方法默认向所有用户开放新文件夹的完全读写访问权限。对于网络硬盘共享根文件夹可手动进行创建,并设置写入权限,通过执行"internet信息服务"的"权限向导"来设置访问权限,可以设置密码来指定是否允许用户进入该文件夹以及是否允许用户删除该文件夹。此外,为了管理这些文件夹,需要保留相关设置信息:如文件夹名、位置、受限操作类型、密码及创建者等。将这些信息写入XML文件,随后通过读写该XML文件来实现对文件夹的相关操作。

Public void CreateXmlOrAddFrag (string xmlFullPath, string folderFullPath, string owner, string password, int type){

 XmlDocument xmlDoc=new XmlDocument();

 string xml="";

 String xmlNode="<character>";

 XmlNode+="<full Path>";

 XmlNode+=folderFullPath;

 XmlNode+="</full Path>";

 XmlNode+="<owner>";

 XmlNode+=owner;

 XmlNode+="</owner>";

 xmlNode+="<password>";

 xmlNode+=password;

 xmlNode+="</password>";

 xmlNode+="<type>";

 xmlNode+=type;

 xmlNode+="</type>";

 xmlNode+="</character>";

 if(!File.Exists(xmlFullPath)){//若不存在则创建xml存储文件

  xml="<?xml version=’1.0’ encoding=’gb2312’?>";

  xml+="<folder>";

  xml+=xmlNode;

  xml+="</folder>";

  xmlDoc.LoadXml(xml);

  xmlDoc.Save(xmlFullPath);//存储文件

 }

 else{//存在xml存储文件则添加新的文档片段

  xmlDoc.Load(xmlFullPath);

  XmlDocumentFragment docFrag=xmlDoc.CreateDocumentFragment();//文档片元素节点

  docFrag.InnerXml=xmlNode;

  XmlNode currNode=xmlDoc.DocumentElement;//获取文档根节点

  currNode.InsertBefore(docFrag,currNode.FirstChild);//插入文档片段

  xmlDoc.Save(xmlFullPath);//存储改变内容

 }

}

  其中,参数fileFullPath是存储文件夹信息的XML文件路径,folderFullPath是此新文件夹路径,owner是创建者名,password是密码,type表示限制操作的类型("0"表示进入受限,"1"表示删除受限)。程序首先判断存储文件夹信息的文件是否存在,不存在则动态创建文件,之后新建文件夹时,只需添加文档片段即可。这里,对XML文件的读写通过文档对象模型DOM实现,由于此处XML文件不会很大,因此对内存资源要求不会太高,速度会很快