Ftpコントロールについて
Secure FTPは、.NET Frameworkのために設計された通信コンポーネントで、FTPサーバへのファイル送受信を容易に実現する強力なツールです。Windowsアプリケーション、Webアプリケーションの両方で使用可能です。
同期・非同期でのファイル転送が行え、単一ファイルの転送はもちろん、指定したフォルダ内のファイルを一括して転送することもできます。
今回は、このFtpコントロールを使って、単一のファイルを同期通信でFTPサーバに転送するプログラムを作成します。
ファイルの転送
ファイルを同期通信でFTPサーバに転送するには、まずはじめにServer、Username、Passwordの各プロパティを最初に設定します。これにより、自動的なサーバーログインが可能になります。そして、Putメソッドを実行します。このメソッドは、指定したファイルをFTPサーバに転送します。
FTPサーバへの接続処理は、メソッドを実行した時点でFtpコントロールが自動的に行ってくれますので、ログイン処理のために新たなコードを書く必要はありません。
Putメソッドを実行すると、メソッドはファイル転送に関する情報をカプセル化したFtpFileオブジェクトを返してきますので、このオブジェクトを使ってファイル転送が成功したかどうかをチェックできます。
ファイル転送の準備
まずは、「参照」ボタンで転送するファイルを選択する処理を作成します。これは、OpenFileDialogコントロールを使用してユーザーにファイルを選択してもらいます。
OpenFileDialogクラスのFileNameプロパティには、ユーザーが選択したファイル名がパス名を含めて格納されます。また、SafeFileNameプロパティにはパス名を除いたファイル名が拡張子付きで格納されるので、これらを取り出して変数に格納しておきます。
Imports Dart.PowerTCP.SecureFtp Public Class Form1 Private fullpass As String Private fname As String Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Label4.Text = "" OpenFileDialog1.ShowDialog() fullpass = OpenFileDialog1.FileName fname = OpenFileDialog1.SafeFileName TextBox1.Text = fullpass End Sub
using Dart.PowerTCP.SecureFtp; namespace myftp_2_cs { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private String fullpass; private String fname; private void button1_Click(object sender, EventArgs e) { label4.Text = ""; openFileDialog1.ShowDialog(); fullpass = openFileDialog1.FileName; fname = openFileDialog1.SafeFileName; textBox1.Text = fullpass; }