/// <summary> /// 원격서버에 파일 저장 /// </summary> /// <param name="dir">디렉토리 Path(파일명 제외한 Path)</param> /// <param name="fileName">파일명(순수 파일명)</param> /// <returns>이미지 접근 URL</returns> public string CopyRemoteServer(string dir, string fileName) { string result = ""; string sourceFile = ""; string destFile = ""; try { if (ConfigurationManager.AppSettings["SERVER_ENV"].ToString().Equals("REAL")) { sourceFile = dir + fileName; string dateDir = GetNowDir("\\"); string dateDir2 = GetNowDir("/"); // 마지막에 \를 뺀 Dir (\를 붙이니 인식이 안됨) string authDir = ConfigurationManager.AppSettings["IMAGE_REMOTE_ROOT_DIR"].ToString(); // 마지막에 \까지 포함한 DIR 뒤에 날짜와 연결해서 사용하기 위한 용도 string destDir = ConfigurationManager.AppSettings["IMAGE_REMOTE_DIR"].ToString() + dateDir; destFile = destDir + fileName; // NAS 인증 및 파일 복사 Process p = Process.Start("net.exe", @"use \\upimage.gmarket.nas\cornerimg\donicash cornerimg!!22 /USER:GMARKETNH\cornerimg"); p.WaitForExit(); if (Directory.Exists(@"" + destDir) == false) { Directory.CreateDirectory(@"" + destDir); } File.Copy(@"" + sourceFile, @"" + destFile, true); // NAS 인증 및 파일 복사 END result = ConfigurationManager.AppSettings["IMAGE_URL_ROOT"].ToString() + dateDir2 + fileName; } else { sourceFile = dir + fileName; string destDir = ConfigurationManager.AppSettings["IMAGE_REMOTE_DIR"].ToString(); destFile = destDir + fileName; if (Directory.Exists(destDir) == false) { Directory.CreateDirectory(destDir); } File.Copy(sourceFile, destFile, true); result = ConfigurationManager.AppSettings["IMAGE_URL_ROOT"].ToString() + fileName; } } catch (Exception e) { CLog.debug(logger, "CDirectoryUtil.CopyRemoteServer : sourceFile = " + sourceFile + ", destFile = " + destFile + ", detail : " + e.Message + ", trace: " + e.StackTrace); } return(result); }
/// <summary> /// 파일 삭제 /// </summary> /// <param name="path">물리적인 전체 파일 경로</param> /// <returns></returns> public bool DeleteFile(string path) { bool result = false; try { File.Delete(path); result = true; } catch (Exception e) { CLog.debug(logger, "CDirectoryUtil.MakeDir : path = " + path + ", message : " + e.Message + ", trace: " + e.StackTrace); } return(result); }
/// <summary> /// 디렉토리가 없으면 만든다. /// </summary> /// <param name="path"></param> /// <returns></returns> public bool MakeDir(string path) { bool result = false; try { DirectoryInfo dir = new DirectoryInfo(path); if (!dir.Exists) { dir.Create(); } result = true; } catch (Exception e) { CLog.debug(logger, "CDirectoryUtil.MakeDir : path = " + path + ", message : " + e.Message + ", trace: " + e.StackTrace); } return(result); }
/// <summary> /// AES256 복호화 /// </summary> /// <param name="Input"></param> /// <param name="key"></param> /// <returns></returns> public static String Decrypt(string Input, string key) { string result = string.Empty; try { RijndaelManaged aes = new RijndaelManaged(); aes.KeySize = 256; aes.BlockSize = 128; aes.Mode = CipherMode.CBC; aes.Padding = PaddingMode.PKCS7; aes.Key = Encoding.UTF8.GetBytes(key); aes.IV = new byte[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; var decrypt = aes.CreateDecryptor(); byte[] xBuff = null; using (var ms = new MemoryStream()) { using (var cs = new CryptoStream(ms, decrypt, CryptoStreamMode.Write)) { //byte[] xXml = Convert.FromBase64String( Input); byte[] xXml = Convert.FromBase64String(Input); cs.Write(xXml, 0, xXml.Length); } xBuff = ms.ToArray(); } result = Encoding.UTF8.GetString(xBuff); } catch (Exception e) { string error = string.Format("CSecureUtil.Decrypt: input={0}|key={1}|exception={2}", Input, key, e.Message); CLog.debug(logger, error); } return(result); }