忘れがちなことを、つらつらと...

俺的備忘録を公開してみるテスト

AS/400からRPGのソースプログラムをFTPダウンロードしてみる

やっぱ、AS/400って特殊だよね。変だよね。日本語はEBCDICコードだし。

まぁ、他にとってくる手段はあるんだけど(Rational Developperとかw)

ライブラリPGMLIBCのソースファイルQRPGLESRCにあるメンバーHOGEをダウンロードしてみる。

using System;
using System.IO;
using System.Net;

namespace FTP
{
    class Program
    {
        public static void Main(string[] args)
        {
            FtpWebRequest reqFTP;

            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://xxx.xxx.xxx.xxx//qsys.lib/pgmlib.lib/qrpglesrc.file/hoge.mbr"));
            reqFTP.Credentials = new NetworkCredential("qsecofr", "qsecofr");

            reqFTP.KeepAlive = true;
            reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
            reqFTP.UseBinary = false;
            reqFTP.Proxy = null;
            reqFTP.UsePassive = false;
            reqFTP.Timeout = -1;

            FtpWebResponse response2 = (FtpWebResponse)reqFTP.GetResponse();
            Stream responseStream2 = response2.GetResponseStream();

            FileStream writeStream = new FileStream("C:\\hoge.txt", FileMode.Create);

            int Length = 2048;
            Byte[] buffer = new Byte[Length];
            int bytesRead = responseStream2.Read(buffer, 0, Length);

            while (bytesRead > 0)
            {
                writeStream.Write(buffer, 0, bytesRead);
                bytesRead = responseStream2.Read(buffer, 0, Length);
            }
            writeStream.Close();
            response2.Close();

            
            // TODO: Implement Functionality Here
            
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}

ちなみに、最初に書いたけど、EBCDICコードなのでこのままでは日本語表示出来ませんw