使用递归获取网站下的所有同类型文件

红色字体就是啦,如有不明白的话,请与我联系QQ:20028205

using System;
using System.Text ;
using System.IO ;
using System.Xml ;
using System.Xml.XPath ;
using System.Web ;
using System.Collections ;


namespace GST.Common.Xml
{
 /// <summary>
 /// 得到站点内的所有Aspx文件,并存入Xml文件中
 /// </summary>
 public class GetAllFiles
 {
  public GetAllFiles()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }


  /// <summary>
  /// 更新Xml文件的某个支点
  /// </summary>
  /// <param name="Files"></param>
  /// <param name="Desc"></param>
  public void UpdateXmlFile(string Files,string Desc,string FileSrc)
  {
   XmlDocument doc = new XmlDocument();
   doc.Load(HttpContext.Current.Server.MapPath(FileSrc));

   XmlNode Node = doc.SelectSingleNode("/AspxFiles/File[text()=/""+Files+"/"]");

   if (Node!=null)
   {
    Node.Attributes[0].InnerText  = Desc ;
   }

   doc.Save(HttpContext.Current.Server.MapPath(FileSrc));

  }
 
  /// <summary>
  /// 写入Xml文件
  /// </summary>
  public void WriteXmlFile(string FileSrc,ArrayList al)
  {
   XmlDocument doc = new XmlDocument();
   doc.Load(HttpContext.Current.Server.MapPath(FileSrc));
  
   XmlElement Element = doc.DocumentElement ;
      bool Update= false;
   
         

   foreach(object obj in al)
   {
    
   
    XmlNode Node = doc.SelectSingleNode("/AspxFiles/File[text()=/""+obj.ToString()+"/"]");
                 
    if (Node ==null)
    {       
     XmlElement ElementChild =doc.CreateElement("File");
     ElementChild.InnerText = obj.ToString();
     XmlCDataSection cdata = doc.CreateCDataSection(obj.ToString());
     XmlAttribute attribute = doc.CreateAttribute("Desc");
     attribute.Value  =cdata.Value ;
     ElementChild.Attributes.Append(attribute);
     Element.AppendChild(ElementChild);
     Update = true;
    } 

    
    
    
   } 
   if(Update)           
   doc.Save(HttpContext.Current.Server.MapPath(FileSrc));
   
   

 

  }
  /// <summary>
  /// 返回所有的Aspx文件
  /// </summary>
  /// <returns>String Array</returns>
  public void GetAllAspxFile(string WebPath,ref ArrayList al)
  {
           
  
   string[] AspxFiles = Directory.GetDirectories(WebPath);
   
   if (AspxFiles.Length > 0)
   {
    foreach( string AspFile in AspxFiles)
    {   
     
     foreach(string InnerFile in Directory.GetFiles(AspFile))
     {
      if(Path.GetExtension(InnerFile).ToLower() ==".aspx")
      {

       string FileName = Path.GetFileName(InnerFile);
      
       al.Add(FileName);
      }
     }
        
     GetAllAspxFile(AspFile,ref al);
             
    }


  
           
   
   }
  
   else
   {

    string[] Files = Directory.GetFiles(WebPath);
    foreach(string AspFile in Files)
    {
     if(Path.GetExtension(AspFile).ToLower() ==".aspx")
     {

                         string FileName = Path.GetFileName(AspFile);
                          al.Add(FileName);
           
     }
    }
   }
   
   
    
   
  }

 }
}

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

dbx

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值