Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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);
        }
Exemple #4
0
        /// <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);
        }