private static void Download(string file)
        {
            try
            {
                PSKS0106B_BL psks_bl = new PSKS0106B_BL();

                //string uri = "ftp://" + "153.120.180.197" + "/" + "Inventory_FromSKS" + "/" + file;
                string uri       = "ftp://" + "163.43.113.92:22" + "/" + file;
                Uri    serverUri = new Uri(uri);
                if (serverUri.Scheme != Uri.UriSchemeFtp)
                {
                    return;
                }
                FtpWebRequest reqFTP;
                reqFTP             = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + "163.43.113.92:50022" + "/" + file));
                reqFTP.Credentials = new NetworkCredential("capital_order_mail", "c!PiTal!0rd@rMa!l");
                reqFTP.KeepAlive   = false;
                reqFTP.Method      = WebRequestMethods.Ftp.DownloadFile;
                reqFTP.UseBinary   = true;
                reqFTP.Proxy       = null;
                FtpWebResponse response       = (FtpWebResponse)reqFTP.GetResponse();
                Stream         responseStream = response.GetResponseStream();

                DataTable dt = new DataTable();

                dt = psks_bl.M_MultiPorpose_SelectChar();

                string path = dt.Rows[0]["Char1"].ToString();
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }


                FileStream writeStream = new FileStream(dt.Rows[0]["Char1"].ToString() + "/" + file, FileMode.Create);
                int        Length      = 2048;
                Byte[]     buffer      = new Byte[Length];
                int        bytesRead   = responseStream.Read(buffer, 0, Length);
                while (bytesRead > 0)
                {
                    writeStream.Write(buffer, 0, bytesRead);
                    bytesRead = responseStream.Read(buffer, 0, Length);
                }

                writeStream.Close();
                response.Close();
                FtpWebRequest requestFileDelete = (FtpWebRequest)WebRequest.Create("ftp://163.43.113.92:50022/" + file);
                requestFileDelete.Credentials = new NetworkCredential("capital_order_mail", "c!PiTal!0rd@rMa!l");
                requestFileDelete.Method      = WebRequestMethods.Ftp.DeleteFile;

                FtpWebResponse responseFileDelete = (FtpWebResponse)requestFileDelete.GetResponse();
            }

            catch
            {
                //MessageBox.Show(ex.Message, "Download Error");
            }
        }
        public static void Main(string[] args)
        {
            try
            {
                Console.Title = "PSKS0106B_販売情報取得";
                PSKS0106B_BL          psks_bl            = new PSKS0106B_BL();
                DataTable             dt                 = new DataTable();
                M_MultiPorpose_Entity mmultiporpose_data = new M_MultiPorpose_Entity();
                mmultiporpose_data.ID  = "102";
                mmultiporpose_data.Key = "1";
                dt = psks_bl.M_MultiPorpose_SelectID(mmultiporpose_data);

                while (dt.Rows[0]["Num1"].ToString().Equals("0"))
                {
                    Thread.Sleep(Convert.ToInt32(dt.Rows[0]["Num2"]) * 1000);
                    dt = psks_bl.M_MultiPorpose_SelectID(mmultiporpose_data); // select columns from M_Multiporpose table
                }

                #region CSV Download from SKS FTP

                string[] files = GetFileList();
                if (files != null)
                {
                    foreach (string file in files)
                    {
                        Download(file);
                    }
                }
                #endregion

                #region Import to T_Ukebarai

                ArrayList arrlst = CheckCsvHeader(dt.Rows[0]["Char1"].ToString()); // check column_headers in csv file

                DataTable dtCsvAll = new DataTable();
                foreach (string data in arrlst)  // read csv file
                {
                    string path = dt.Rows[0]["Char1"].ToString() + @"\" + data;


                    string[] Lines = File.ReadAllLines(path, Encoding.GetEncoding(932));
                    string[] Fields;
                    Fields = Lines[0].Split(new char[] { ',' });
                    int       Cols  = Fields.GetLength(0);
                    DataTable dtcsv = new DataTable();
                    //1st row must be column names; force lower case to ensure matching later on.
                    for (int i = 0; i < Cols; i++)
                    {
                        dtcsv.Columns.Add(Fields[i].Replace("\"", ""), typeof(string));
                    }
                    DataRow Row;
                    for (int i = 1; i < Lines.GetLength(0); i++)
                    {
                        Fields = Lines[i].Split(new char[] { ',' });
                        Row    = dtcsv.NewRow();
                        for (int f = 0; f < Cols; f++)
                        {
                            Row[f] = Fields[f].Replace("\"", "");
                        }
                        dtcsv.Rows.Add(Row);
                    }

                    dtCsvAll.Merge(dtcsv);
                }

                if (dtCsvAll.Rows.Count > 0)
                {
                    bool result = false;
                    result = psks_bl.Ukebarai_Insert(dtCsvAll); // insert into ukebarai
                }
                #endregion

                #region Move to backup foler finished Files

                for (int i = 0; i < arrlst.Count; i++)  // move csv file to another folder
                {
                    string path     = dt.Rows[0]["Char1"].ToString() + @"\" + arrlst[i];
                    string movefile = dt.Rows[0]["Char1"].ToString() + @"\" + "Finish";
                    //string movefile = dt.Rows[0]["Char2"].ToString();
                    if (!Directory.Exists(@movefile))
                    {
                        Directory.CreateDirectory(@movefile);
                    }

                    string destinationFile = movefile + @"\" + arrlst[i];

                    if (System.IO.File.Exists(destinationFile))
                    {
                        System.IO.File.Delete(destinationFile);
                    }

                    System.IO.File.Move(path, destinationFile);
                }
                #endregion
            }
            catch (Exception e)
            {
                InsertErrorLog(e.Message.ToString());
            }
        }