GrapeCity Secure FTP for .NET 4.0J
Put(String,Int64,StoreType) メソッド
使用例 

サーバー上のファイルのパス。
データ転送を開始する位置を示すリスタートマーカー。storeTypeがStoreType.Replaceの場合に使用されます。
使用する保存タイプ。remoteOffset > 0の場合、storeTypeはStoreType.Replaceである必要があります。
最も低レベルのPutメソッド。指定したオフセット以降にアップロードを開始します。
シンタックス
Public Overloads Function Put( _
   ByVal remotePath As String, _
   ByVal remoteOffset As Long, _
   ByVal storeType As StoreType _
) As Stream
public Stream Put( 
   string remotePath,
   long remoteOffset,
   StoreType storeType
)

パラメータ

remotePath
サーバー上のファイルのパス。
remoteOffset
データ転送を開始する位置を示すリスタートマーカー。storeTypeがStoreType.Replaceの場合に使用されます。
storeType
使用する保存タイプ。remoteOffset > 0の場合、storeTypeはStoreType.Replaceである必要があります。

戻り値の型

書き込み先のStream。
解説

データ接続を利用するメソッドを呼び出すときは、事前にストリームを閉じる必要があります。コントロール接続を利用するメソッドを呼び出すときにも事前にストリームを閉じることを推奨します。

このメソッドの実行中、DataIsBusyはtrueを返します。

使用例
以下のサンプルコードは、ストリームを使用してサーバーにデータをアップロードしながら処理する方法を示します。 processRecords関数は、Ftp.Startメソッドに渡して非同期に実行できます。
private void processRecords()
{
    // 低レベルストリームを使用してファイルを保存します。
    ftp1.Session.RemoteEndPoint.HostNameOrAddress = myServer;
    ftp1.Session.Username = myUsername;
    ftp1.Session.Password = myPassword;
    ftp1.Connect();
    ftp1.Authenticate();

    // レコードファイルを読み取ってアップロードします。
    FileStream file = new FileStream(myRecordsFile, FileMode.Open, FileAccess.Read);
    Stream stream = ftp1.Put("myRecords.txt", 0, StoreType.Replace);
    byte[] buffer = new byte[64]; // 各レコードは64バイトですが、区切られていません。
    byte[] endOfRecord = System.Text.Encoding.Default.GetBytes("[END OF RECORD]\r\n");
    int count = -1;
    do
    {
        count = file.Read(buffer, 0, buffer.Length);
        stream.Write(buffer, 0, buffer.Length);
        // データをストリーム送信するとき、各レコードの末尾にタグを付加します。
        stream.Write(endOfRecord, 0, endOfRecord.Length);
    } while (count > 0);
            
    stream.Close();
    ftp1.Close();
}
Private Sub processRecords()
    ' 低レベルストリームを使用してファイルを保存します。
    ftp1.Session.RemoteEndPoint.HostNameOrAddress = myServer
    ftp1.Session.Username = myUsername
    ftp1.Session.Password = myPassword
    ftp1.Connect()
    ftp1.Authenticate()

    ' レコードファイルを読み取ってアップロードします。
    Dim file As FileStream = New FileStream(myRecordsFile, FileMode.Open, FileAccess.Read)
    Dim stream As Stream = ftp1.Put("myRecords.txt", 0, StoreType.Replace)
    Dim buffer() As Byte = New Byte(63){} ' 各レコードは64バイトですが、区切られていません。
    Dim endOfRecord() As Byte = System.Text.Encoding.Default.GetBytes("[END OF RECORD]" & Constants.vbCrLf)
    Dim count As Integer = -1
    Do
        count = file.Read(buffer, 0, buffer.Length)
        stream.Write(buffer, 0, buffer.Length)
        ' データをストリーム送信するとき、各レコードの末尾にタグを付加します。
        stream.Write(endOfRecord, 0, endOfRecord.Length)
    Loop While count > 0

    stream.Close()
    ftp1.Close()
End Sub
参照

関連項目

Ftp クラス
Ftp メンバ
オーバーロード一覧

 

 


© 2002, GrapeCity inc. All rights reserved.