欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來(lái)到入門教程網(wǎng)!

C#教程

當(dāng)前位置:主頁(yè) > 軟件編程 > C#教程 >

C#導(dǎo)出網(wǎng)站功能實(shí)例代碼講解

來(lái)源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C#教程|點(diǎn)擊: 次

這個(gè)導(dǎo)出網(wǎng)站功能指通過(guò)前臺(tái)javascript觸發(fā)進(jìn)入ashx函數(shù)中,實(shí)現(xiàn)將服務(wù)器中某個(gè)文件夾(包含其子文件夾和文件)通通復(fù)制到服務(wù)器中另一處位置,當(dāng)然該文件夾本身就是一個(gè)網(wǎng)站。所以導(dǎo)出網(wǎng)站最重要的兩個(gè)功能,除了javascript的觸發(fā),就是C#ashx文件復(fù)制文件夾的操作。

       下面這段代碼就是通過(guò)javascript的Request函數(shù)調(diào)用copy.ashx函數(shù)文件,實(shí)現(xiàn)將需要復(fù)制的文件夾的子路徑和復(fù)制到所在位置的子路徑的兩個(gè)參數(shù)傳進(jìn)去后臺(tái)函數(shù)getWebList函數(shù)就是后臺(tái)的一個(gè)函數(shù),這個(gè)函數(shù)可以不用管他。getBack函數(shù)就需要寫上,可以通過(guò)這個(gè)函數(shù)獲取結(jié)果。當(dāng)然Webside_load這個(gè)函數(shù)也是需要onclick觸發(fā)過(guò)來(lái)的,這里就不全部列出來(lái)了。

以下是C#實(shí)現(xiàn)導(dǎo)出網(wǎng)站功能引用片段:

//Webside_load導(dǎo)出網(wǎng)站
 function Webside_load(sID, iWebTemplateID) {//alert(0);
   //alert(sID); alert(iWebTemplateID);
   //被賦值的目錄:就是模板ID下的文件夾以及文件
   sTartDir = "http://www.cnblogs.com/uploadfile/webTemplate/" + iWebTemplateID;
   //目標(biāo)目錄:就是作品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);
 }

通過(guò)上面的javascript,可以獲取來(lái)自后臺(tái)函數(shù)的數(shù)據(jù),而獲取后臺(tái)函數(shù)的數(shù)據(jù)就需要下面關(guān)于遍歷加copy的函數(shù)文件了。

以下是引用片段:

<%@ 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("成功導(dǎo)出!");
   }
   
   static void MyDirectory_Copy(string sTartDir, string sEndDir)
   {
     //判斷兩個(gè)目錄是否都是存在的
     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;
 
     //要復(fù)制到的路徑 
     string endPath = sEndDir + Path.DirectorySeparatorChar.ToString() + sTarteFolderName;
     if (Directory.Exists(endPath))
     {
       Directory.Delete(endPath, true);
     }
 
     Directory.CreateDirectory(endPath);
 
     //復(fù)制文件 
     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]));
     }
     //復(fù)制目錄 
     string[] dires = Directory.GetDirectories(sTartDir);
     for (int j = 0; j < dires.Length; j++)
     {
       MyDirectory_Copy(dires[j], endPath);
     }
   } 
 
  
 
   public bool IsReusable
   {
     get
     {
       return false;
     }
   }  
 }

      從前臺(tái)獲得sTartDir源文件目錄和 sTartDir目標(biāo)目錄,得到他們的絕對(duì)路徑。再執(zhí)行DirectoryCopy函數(shù),獲得源文件的文件夾名字,將目標(biāo)文件的絕對(duì)路徑加上文件夾名賦給新的目標(biāo)文件目錄通過(guò)遞歸循環(huán)判斷,執(zhí)行復(fù)制過(guò)程。

      這種方法類似于之前所提到的C#遍歷文件夾,不過(guò)這里是內(nèi)部遍歷復(fù)制,和在系統(tǒng)中遍歷也不是完全一樣。

      以上就是C#導(dǎo)出網(wǎng)站功能的全部?jī)?nèi)容介紹,希望對(duì)大家的學(xué)習(xí)有所幫助。

上一篇:C#繪制曲線圖的方法

欄    目:C#教程

下一篇:C#裝箱和拆箱原理詳解

本文標(biāo)題:C#導(dǎo)出網(wǎng)站功能實(shí)例代碼講解

本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/6924.html

網(wǎng)頁(yè)制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語(yǔ)言數(shù)據(jù)庫(kù)服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有