2013-04-10 22 views
-2

Я пытаюсь сделать небольшое приложение, где я могу выбрать несколько файлов, установить интервал и установить информацию о FTP-сервере. После этого он загружает файлы с заданным интервалом.C# FTP - перезаписать файл

Я борюсь за часть FTP. Я мог бы легко скопировать/вставить некоторые части кодов отсюда, но я не думаю, что это помогло бы мне. В основном мне нужно проверить, существует ли файл, если он это делает, удалить его и загрузить новую версию, если он не существует, просто загрузите файл.

Как это можно сделать самым простым способом? Я не ищу советы о том, как это сделать, я ищу предпочтительный код с комментариями о том, что делает.

EDIT: На основании ответа здесь я думаю, что то, что я ищу, - способ переопределить файл. На самом деле это была моя первая идея, но я не мог найти ничего о том, как это сделать, а затем я только пришел к выводу, что мне нужно вручную проверять и так далее. Я извиняюсь за ошибку. Может ли кто-нибудь дать мне подсказку о том, что мне нужно для перезаписи?

+1

Подождите ... Вы хотите нашу помощь, но нам не поможет, разместив код у вас возникли проблемы с?/boogle – Brian

+4

Видя, как вы заставили кого-то ответить, это несколько противоречит этому комментарию, но .... Stack Overflow не о том, чтобы кто-то предоставлял вам код. Нам не нужно, чтобы вы были экспертом, но просто проводите исследования и делаете свои собственные попытки. Сообщество очень хочет помочь с кодом, в котором вы испытываете проблемы, но менее склонны помогать, когда ваш единственный реальный вопрос: «Покажите мне код для выполнения« x »' – psubsee2003

+0

Как я уже сказал. Я искал в Интернете, как это сделать. Я новичок в программировании и, вероятно, немного испугался. Один из вопросов, который я получил, - это: нужно ли мне использовать или создавать различные веб-запросы? Мне нужно проверить, удалить и загрузить, но как я могу сделать это наиболее эффективно, не создавая больше веб-запросов, чем нужно? – user2252334

ответ

7

Try что-то вроде этого

var request = (FtpWebRequest)WebRequest.Create("ftp://ftp.myworld.com/file.txt"); 
request.Credentials = new NetworkCredential("username", "password"); 
request.Method = WebRequestMethods.Ftp.GetFileSize; 

try 
{ 
    FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 

    // To delete file 
    FtpWebRequest delRequest = (FtpWebRequest)WebRequest.Create(serverUri); 
    delRequest.Credentials = new NetworkCredential("username", "password"); 
    delRequest.Method = WebRequestMethods.Ftp.DeleteFile; 
    FtpWebResponse response = (FtpWebResponse) delRequest.GetResponse(); 
} 
catch(Exception e) 
{ 
    var response = (FtpWebResponse)ex.Response; 
    if (response.StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable) 
    { 
     //not exist 
    } 
} 
+0

Другой способ сделать, не создавая исключение, получить все файлы в каталоге и проверить существующий! –

+0

@AppDeveloper Проще всего просто переписать существующие файлы, поскольку для существующих не требуется никаких конкретных действий. – Filburt

+0

@ Филбурт - да, но он должен удалить его, а не выгружать файл! –