2
現在、私のアプリのFTPアップロードの部分は次のようになっています。私がしなければならないのは、ファイルをtarget_file_tmp_name
でアップロードし、アップロードが完了したら(または名前を変更する)target_file_name
にファイルをアップロードすることです。アップロードが完了するのを待ってからリモートファイルの名前を変更する方法を理解できません。C#でFTPを使用してファイルを移動する
提案がありますか?
var result_file_name = root_dir + "\\" + file_name + ".eps";
System.Uri target_file_name = new Uri(ftp_path + "/" + file_name + ".eps");
System.Uri target_file_tmp_name = new Uri(ftp_path + "/" + file_name + ".tmp");
await WhenFileCreated(result_file_name);
if (File.Exists(result_file_name))
{
SetProgressText("Uploading to server...");
WebClient wc_uploader = new WebClient();
wc_uploader.Credentials = new NetworkCredential("user", "pass");
wc_uploader.UploadFileCompleted += FinishProcess;
wc_uploader.UploadFileAsync(target_file_tmp_name, "STOR", result_file_name);
}
らしいですか?それについて何が間違っていますか? – Fildor
@Fildorは名前を付ける前にアップロードを完了するのを待つ必要があります。他の側では、仕事と未完成のアップロードを処理するcronjob – demonoid
ああ、私は参照してください。 FTPリネームに関するStackoverflow Questionsからの答えのいくつかを試しましたか?このようにしてください:http://stackoverflow.com/a/13026258/982149あなたは 'FinishProcess'イベントハンドラで名前を変更する必要がありますし、もちろん' target_file_tmp_name'をあなたのSTOREコマンドに使うべきです。 – Fildor