• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#导出网站功能实例代码讲解

C#导出网站功能实例代码讲解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c站,c语言,欲情 c max,奔驰c200,85度c等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

这个导出网站功能指通过前台javascript触发进入ashx函数中,实现将服务器中某个文件夹(包含其子文件夹和文件)通通复制到服务器中另一处位置,当然该文件夹本身就是一个网站。所以导出网站最重要的两个功能,除了javascript的触发,就是C#ashx文件复制文件夹的操作。

       下面这段代码就是通过javascript的Request函数调用copy.ashx函数文件,实现将需要复制的文件夹的子路径和复制到所在位置的子路径的两个参数传进去后台函数getWebList函数就是后台的一个函数,这个函数可以不用管他。getBack函数就需要写上,可以通过这个函数获取结果。当然Webside_load这个函数也是需要onclick触发过来的,这里就不全部列出来了。

以下是C#实现导出网站功能引用片段:

//Webside_load导出网站
 function Webside_load(sID, iWebTemplateID) {//alert(0);
   //alert(sID); alert(iWebTemplateID);
   //被赋值的目录:就是模板ID下的文件夹以及文件
   sTartDir = "http://www.cnblogs.com/uploadfile/webTemplate/" + iWebTemplateID;
   //目标目录:就是作品ID下
   sEndDir = "http://www.cnblogs.com/uploadfile/showweb/" + sID + "/";
   //alert(sourceDir); alert(targetDir);
 
   var variable = ["sTartDir", "sEndDir"];
   var value = [sTartDir, sEndDir]; //alert(value);
   Request("getWebList", variable, value, getBack, WebUrl + "http://www.cnblogs.com/copy.ashx", svrNamespace);
 
 }
 function getBack() {
   var xmlhttp = xmlHttpRequest;
   var Result = xmlhttp.responseText;
   alert(Result);
 }

</div>

通过上面的javascript,可以获取来自后台函数的数据,而获取后台函数的数据就需要下面关于遍历加copy的函数文件了。

以下是引用片段:

<%@ WebHandler Language="C#" Class="copy" %>
 
 using System;
 using System.Web;
 using System.IO;
 
 public class copy : IHttpHandler
 {
   //采用递归的方式遍历,文件夹和子文件中的所有文件。
   public void ProcessRequest(HttpContext context)
   {
     HttpRequest Request = context.Request;
     HttpResponse Response = context.Response;
     HttpServerUtility Server = context.Server;
     //指定输出头和编码
     context.Response.ContentType = "text/html";
     Response.Charset = "utf-8";
 
     HttpFileCollection fs = HttpContext.Current.Request.Files;
     
     string sTartDir = Request.Form["sTartDir"];
     string sEndDir = Request.Form["sEndDir"];
     sTartDir = System.Web.HttpContext.Current.Server.MapPath(sTartDir);
     sEndDir = System.Web.HttpContext.Current.Server.MapPath(sEndDir);
     //Test
     //string sTartDir = System.Web.HttpContext.Current.Server.MapPath("../uploadfile/webTemplate/2");
     //string sEndDir = System.Web.HttpContext.Current.Server.MapPath("../uploadfile/showweb/2012082700000001/");
     MyDirectory_Copy(sTartDir, sEndDir);
     
     Response.Write("成功导出!");
   }
   
   static void MyDirectory_Copy(string sTartDir, string sEndDir)
   {
     //判断两个目录是否都是存在的
     if (!Directory.Exists(sTartDir))
       return;
     if (!Directory.Exists(sEndDir))
       return;
 
     //获取文件夹名字
     string sTarteFolderName = sTartDir.Replace(Directory.GetParent(sTartDir).ToString(), "").Replace(Path.DirectorySeparatorChar.ToString(), "");
     //判断是否该文件夹赋值成功
     if (sTartDir == sEndDir + sTarteFolderName)
       return;
 
     //要复制到的路径 
     string endPath = sEndDir + Path.DirectorySeparatorChar.ToString() + sTarteFolderName;
     if (Directory.Exists(endPath))
     {
       Directory.Delete(endPath, true);
     }
 
     Directory.CreateDirectory(endPath);
 
     //复制文件 
     string[] files = Directory.GetFiles(sTartDir);
     for (int i = 0; i < files.Length; i++)
     {
       File.Copy(files[i], endPath + Path.DirectorySeparatorChar.ToString() + Path.GetFileName(files[i]));
     }
     //复制目录 
     string[] dires = Directory.GetDirectories(sTartDir);
     for (int j = 0; j < dires.Length; j++)
     {
       MyDirectory_Copy(dires[j], endPath);
     }
   } 
 
  
 
   public bool IsReusable
   {
     get
     {
       return false;
     }
   }  
 }

</div>

      从前台获得sTartDir源文件目录和 sTartDir目标目录,得到他们的绝对路径。再执行DirectoryCopy函数,获得源文件的文件夹名字,将目标文件的绝对路径加上文件夹名赋给新的目标文件目录通过递归循环判断,执行复制过程。

      这种方法类似于之前所提到的C#遍历文件夹,不过这里是内部遍历复制,和在系统中遍历也不是完全一样。

      以上就是C#导出网站功能的全部内容介绍,希望对大家的学习有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C# 检索不区分大小写并高亮显示实例详解
  • C#实现Base64处理的加密解密,编码解码示例
  • C# SqlHelper应用开发学习
  • C#多线程经典示例(吃苹果)
  • C#使用Windows Service的简单教程(创建、安装、卸载、调试)
  • C# 6.0 的知识梳理
  • C#向PPT文档插入图片以及导出图片的实例
  • C#使用Jquery zTree实现树状结构显示 异步数据加载
  • C#清理非托管对象实例分析
  • C#双缓冲技术实例详解

相关文章

  • 2017-05-28C#实现抓取和分析网页类实例
  • 2017-05-28C#实现根据银行卡卡号判断银行名
  • 2017-05-28winform实现关闭按钮失效的两种方法
  • 2017-05-28C#清理非托管对象实例分析
  • 2017-05-28C#中将DataTable转换成CSV文件的方法
  • 2017-05-28C# 全角和半角转换以及判断的简单代码
  • 2017-05-28C#封装的常用文件操作类实例
  • 2017-05-28C#实现SQL批量插入数据到表的方法
  • 2017-05-28C#中out与ref的区别实例解析
  • 2017-05-28C#枚举类型与结构类型实例解析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • DevExpress之ChartControl实现时间轴实例
    • C#获取路径的几种方式实例分析
    • C#调用dos窗口获取相关信息的方法
    • C# 调用API函数弹出映射网络驱动器对话框问题
    • C#调用mmpeg进行各种视频转换的类实例
    • C#判断数据类型的简单示例代码
    • 基于XSLT调试的相关问题
    • insert语句太长用StringBuilder优化一下
    • 再议C#中的装箱与拆箱的问题详解
    • .net 随机生成汉字

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有