2
В настоящее время часть загрузки FTP для моего приложения выглядит ниже. Мне нужно сделать, чтобы загрузить файл с target_file_tmp_name
и при загрузке заканчивается, чтобы переместить его (или переименовать) на target_file_name
. Не могу понять, как ждать завершения загрузки, а затем переименовать удаленный файл.Перемещение файла с использованием FTP в C#
Любые предложения?
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
@Фильдору нужно дождаться завершения загрузки, прежде чем дать ему имя. На другой стороне cronjob работает и обрабатывает незавершенные загрузки также – demonoid
А, я вижу. Пробовали ли вы некоторые ответы на вопросы Stackoverflow относительно переименования FTP? Как и этот: http://stackoverflow.com/a/13026258/982149 Я думаю, вам нужно будет начать переименование в обработчике событий FinishProcess и, конечно же, сначала использовать команду target_file_tmp_name для вашей команды STORE. – Fildor