通信
- FTP
FTP通信は.NET Frameworkにより標準サポートされていますので以下のように簡単に実装できます。
using System.IO;
using System.Net;
...
string szUri = "ftp://127.0.0.1/";
string szLocal;
string szRemote;
string szUserId = "yoshida";
string szPassword = "java";
FtpWebRequest webRequest;
// ディレクトリ作成
szRemote = @"pub\temp";
webRequest = ( FtpWebRequest )WebRequest.Create( szUri + szRemote );
webRequest.Credentials = new NetworkCredential( szUserId, szPassword );
webRequest.Method = WebRequestMethods.Ftp.MakeDirectory;
using( FtpWebResponse webResponse = ( FtpWebResponse )webRequest.GetResponse() )
{
}
// ファイルアップロード
szRemote = @"pub\FileExcel.xls";
szLocal = @"C:\FileExcel.xls";
webRequest = ( FtpWebRequest )WebRequest.Create( szUri + szRemote );
webRequest.Credentials = new NetworkCredential( szUserId, szPassword );
webRequest.Method = WebRequestMethods.Ftp.UploadFile;
webRequest.UsePassive = false;
using( Stream st = webRequest.GetRequestStream() )
using( FileStream fs = new FileStream( szLocal, FileMode.Open ) )
{
Byte[] btTmp = new Byte[ 1024 ];
int nDataLength;
do
{
nDataLength = fs.Read( btTmp, 0, btTmp.Length );
st.Write( btTmp, 0, nDataLength );
} while( nDataLength != 0 );
}
// ファイルダウンロード
szRemote = @"pub\FileExcel.xls";
szLocal = @"C:\FileExcel.xls";
webRequest = ( FtpWebRequest )WebRequest.Create( szUri + szRemote );
webRequest.Credentials = new NetworkCredential( szUserId, szPassword );
webRequest.Method = WebRequestMethods.Ftp.DownloadFile;
webRequest.UsePassive = false;
using( FtpWebResponse webResponse = ( FtpWebResponse )webRequest.GetResponse() )
using( Stream st = webResponse.GetResponseStream() )
using( FileStream fs = new FileStream( szLocal, FileMode.Create ) )
{
Byte[] btTmp = new Byte[ 1024 ];
int nDataLength;
do
{
nDataLength = st.Read( btTmp, 0, btTmp.Length );
fs.Write( btTmp, 0, nDataLength );
} while( nDataLength != 0 );
}