您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何實現C# Web Services升級程序,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
介紹一種用C# Web Services升級程序。通過C# Web Services升級程序就象讀寫本機文件一樣簡單。所以我就直接給出代碼。
C# Web Services升級程序部分代碼:
using System; using System.Web; using System.Web.Services; using System.Web.Services.Protocols; using System.IO; [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] public class Service : System.Web.Services.WebService { public Service() { //如果使用設計的組件,請取消注釋以下行 //InitializeComponent(); } /// <summary> /// 需要升級文件的服務器路徑 /// summary> private const string UpdateServerPath ="d:\\Debug"; [WebMethod(Description = "返回服務器上程序的版本號")] public string ServerVer() { return "4.0"; } [WebMethod(Description = "返回需更新的文件")] public string[] NewFiles() { DirectoryInfo di = new DirectoryInfo(UpdateServerPath); FileInfo[] fi = di.GetFiles(); int intFiles= fi.Length; string[] myNewFiles = new string[intFiles]; int i = 0; foreach (FileInfo fiTemp in fi) { myNewFiles[i] = fiTemp.Name; System.Diagnostics.Debug.WriteLine(fiTemp.Name); i++; } return myNewFiles; } [WebMethod(Description = "返回需更新的文件的大小")] public int AllFileSize() { int filesize = 0; string[] files = Directory.GetFiles(UpdateServerPath); foreach (string file in files) { FileInfo myInfo = new FileInfo(file); filesize += (int)myInfo.Length / 1024; } return filesize; } [WebMethod(Description = "返回給定文件的字節數組")] public byte[] GetNewFile(string requestFileName) { ///得到服務器端的一個文件 if (requestFileName != null || requestFileName != "") return getBinaryFile(UpdateServerPath + "\\"+requestFileName); else return null; } /// <summary> /// 返回所給文件路徑的字節數組。 /// summary> /// <param name="filename">param> /// <returns>returns> private byte[] getBinaryFile(string filename) { if (File.Exists(filename)) { try { //打開現有文件以進行讀取。 FileStream s = File.OpenRead(filename); return ConvertStreamToByteBuffer(s); } catch { return new byte[0]; } } else { return new byte[0]; } } /// <summary> /// 把給定的文件流轉換為二進制字節數組。 /// summary> /// <param name="theStream">param> /// <returns>returns> private byte[] ConvertStreamToByteBuffer(System.IO.Stream theStream) { int b1; System.IO.MemoryStream tempStream = new System.IO.MemoryStream(); while ((b1 = theStream.ReadByte()) != -1) { tempStream.WriteByte(((byte)b1)); } return tempStream.ToArray(); } }
關于“如何實現C# Web Services升級程序”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。