/// <summary> /// 將傳入之byte[]寫入檔案 (包含建立路徑功能) </summary> /// <param name="data"> data (byte[]) </param> /// <param name="path"> 檔案路徑 </param> /// <param name="fileName"> 檔案名稱 </param> /// <exception cref="Exception"> </exception> public void WriteToFile(byte[] data, string fileFullPath, bool useUTF8BOM = true) { // 檢核路徑 var directory = ZlpPathHelper.GetDirectoryPathNameFromFilePath(fileFullPath); DirectoryVerifyExistsAndCreate(directory); using (var fos = new ZlpFileInfo(fileFullPath).OpenCreate()) { // 印出訊息 Console.WriteLine("寫入 " + fileFullPath); if (useUTF8BOM) { // 寫入 UTF8 HEADER fos.WriteByte(0xEF); fos.WriteByte(0xBB); fos.WriteByte(0xBF); // 寫入檔案 fos.Write(data, 0, data.Length); } else { // 寫入檔案 fos.Write(data, 0, data.Length); } } }
/// <summary> /// 檔案下載 /// </summary> /// <param name="fileFullPath"></param> /// <returns></returns> public void DownLoadFileTo(string fileFullPath, string targetFileFullPath) { // ============================================================= // ftpRequest // ============================================================= var ftpRequest = GetFtpWebRequest(fileFullPath); ftpRequest.Credentials = new NetworkCredential(this.config.UserID, this.config.Password); ftpRequest.KeepAlive = false; ftpRequest.UseBinary = true; ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile; using (var response = (FtpWebResponse)ftpRequest.GetResponse()) { using (var readerStream = response.GetResponseStream()) { using (var fileStream = new ZlpFileInfo(targetFileFullPath).OpenCreate()) { byte[] buffer = new byte[10240]; int read; while ((read = readerStream.Read(buffer, 0, buffer.Length)) > 0) { fileStream.Write(buffer, 0, read); } } } } }