通信


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 );
}
		
	


inserted by FC2 system