in

Darkthread

黑暗執行緒
All Tags » CODE » .NET (RSS)

Browse by Tags

  • CODE - WebClient 下載檔案自動取得檔名

    透過 WebClient.DownloadFile() 或 DownloadData() 下載檔案對 .NET 老鳥而言是雕蟲小技(參考: CODE-使用C#程式從網站下載檔案 ),但此種寫法檔名需自行指定。若下載對象非靜態檔案,伺服器端程式會透過 Content-Disposition Response Header 傳回檔名供客戶端參考,WebClient 是否能由 Response Header 自動取得檔名呢? 答案是可以! 程式範例如下: static string DownloadFile(string url, string saveFolder) { using (var wc...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 09-16-2018
  • 程式範例:byte[] 不落地壓縮 ZIP 檔

    .NET 4.5 起加入 ZipArchive、ZipFile 等列類別,自此不用額外安裝第三方程式庫就能製作 ZIP 檔。微軟官方文件則有篇範例文章, 操作說明:壓縮與解壓縮檔案 - Microsoft Docs ,介紹如何使用 System.IO.Compression 的一系列類別壓縮及解壓縮檔案。 我遇到一個需求,要將使用者在網站查詢的結果,以一筆資料一個檔案形式匯出,再集結壓縮成單一 ZIP 檔方便使用者下載。爬文找到的範例多以檔案形式處理為主,而我想省掉將資料寫成檔案再壓縮的步驟,但直接將記憶體 byte[] 壓成 ZIP(也是 byte[])的完整範例不多,索性將摸索成果整理成筆記...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 08-14-2018
  • 野人獻曝 - 極簡風格 .NET Stopwatch 計時法

    在 .NET 要測量執行時間,Stopwatch 是最簡單直覺的做法,像這樣: Stopwatch sw = new Stopwatch(); sw.Start(); //...執行要測試的動作 sw.Stop(); //將測得秒數輸出到Console、Debug或Log檔 Console.WriteLine($ "Time={sw.ElapsedMilliseconds:n0}ms" ); 說起來不複雜,但一但測量對象變多,專案將充斥大量 Stopwatch 建立、開始、結束以及記錄時間的程式碼。遇到大範圍要計時,內部也要分段計時的需求,還得宣告多個 Stopwatch 物件並注意命名不能重複...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 01-09-2018
  • CODE-C# 程式讀取 Exchange 共用行事曆

    工作遇到新需求:辦公室自動化服務希望讀取使用者行事曆,整合顯示於個人資訊頁。 EWS Managed API 封裝了複雜又囉嗦的 Exchange Web Service SOAP 細節,改以 .NET 程式庫形式提供電子郵件、連絡人、行事曆、公用資料夾的存取管道,是 C# 開發 Exchange 相關程式的首選。(意外發現 EWS Managed API 從 2014 起轉為 Github 開源專案 ,有原始碼在手,搞不懂走不通都有救,用起來格外讓人放心,微軟真的愈來愈開放) 官方文件有篇詳細 介紹文 ,示範如何使用 EWS Mananged API 查詢行事曆取得個人約會資訊。基本原理是利用...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 12-15-2017
  • CODE-從 JSON 提取文字內容

    從檔案萃取文字部分建立索引是全文檢索的必要程序,先前介紹過 為 PDF、Office 檔案產生文字索引 的做法,實際開發則遇到為 JSON 建立文字索引的需求。借用上回 遞迴文章 的組織資料當實例,假設 JSON 格式如下: { "Name" : "總經理" , "Children" : [ { "Name" : "行政部" , "Children" : [ { "Name" : "人資組" }, { "Name" ...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 12-15-2017
  • CODE-使用 C# 批次列印 PDF 檔案

    專案遇到批次列印 PDF 檔需求。 Acrobat Reader 或 Foxit Reader 等常用 PDF 軟體本身就具備傳參數直接列印功能,例如 Acrobat Reader 直接列印 PDF 之語法為:AcroRd32.exe /p /h "pdf路徑" "印表機名稱"(印表機名稱省略時由預設印表機輸出) 基於以上資訊,最直覺的做法是找出 Acrobat Reader EXE 檔(AcroRd32.exe)路徑,在 .NET 程式透過 Process.Start() 傳入 PDF 路徑及 /p /h 參數呼叫 Acrobat Reader 列印檔案...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 07-14-2017
  • CODE - 數字轉英文 C# 函式庫

    專案遇上數字轉成英文的需求,例如:1234 需轉為 one thousand two hundred thirty four。 網路上有許多解決方案,程式範例、現成函式庫都有,選擇眾多之下,透過 NuGet 即裝即用才是王道。我找到一個,在 NuGet 搜尋 NUT,第一筆 Nut, Number To Text Converter & Money To Text Converter: 程式為 Open Source, 使用說明與原始碼在 Github 上: https://github.com/emrahyumuk/NUT-number-to-text 。使用說明略嫌簡略,「Use the...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 06-30-2017
  • Json.NET技巧-反序列化還原為不同型別的集合

    情境如下,我們定義一個抽象型別Notification保存排程發送通知的資料(包含JobType、ScheduleTime及Message),依發送管道分為電子郵件通知及簡訊通知,故實作成EmailNotification及SMSNotification兩個類別,並各自增加Email及PhoneNo屬性。 using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System; namespace CustCreate { public enum Channels { Email, SMS } //通知作業 public abstract...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 12-14-2013
  • 使用Excel維護多國語系字串資源檔

    針對多國語系,.NET提供了不錯的解決方案 -- 透過.resx資源檔定義字串,透過ResourceManager或Visual Studio自動產生對應的類別[ *.Designer.cs ]取用。要新增語系支援,只需增加該語系的resx檔,提供各項目對應的文字,配合CultureInfo切換就能輕易切換語系顯示。(延伸閱讀: 逐步解說:使用資源進行 ASP.NET 的當地語系化 ) 像是以下這個例子: 這個例子也剛好突顯維護多國語系常見的困擾。Message.resx中有四個項目,Message.zh-CN.resx只有兩則。在開發過程,隨著新介面出現就需要定義新的字串項目,此時得在Message...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 07-02-2013
  • CODE-將匿名型別陣列匯成CSV

    工作的專案有個小需求,使用者羅列了一堆報表匯出需求,基上都是從現存LINQ資料集合以不同條件取出不同欄位。 我想到最簡便的做法是套用Where()查詢,依需求產生匿名型別 Select(o => new {     欄位1 = o.PropA,     欄位2 = o.PropB,     欄位3 = o.PropC … }) 連欄位名稱都隨使用者指定,最後再將查詢結果轉為CSV,幾個步驟就搞定一項報表需求,進行量產。 基於以上構想,我需要一個能將任意匿名型別陣列或List自動轉成CSV的共用函數,挑戰點在於陣列元素型別未知...
    公佈在 黑暗執行緒 (Weblog)Jeffrey 發表於 04-30-2013
第1頁,共5頁 (44個項目) 1 2 3 4 5 下一頁 >
Powered by Community Server (Non-Commercial Edition), by Telligent Systems