2011-07-27 4 views
2

私はリモートサーバのフォルダにExcelファイルのセットを持っています。また、ローカルマシン上で1つのWPFアプリケーションが実行されています。今私は、リモートフォルダ内のファイルを見てダウンロードすることができます。これを達成する方法は?私はリモートのフォルダとファイルにアクセスするためにFTPを使うことができます

私はこれにFTPを使用できますか? 可能な場合はどうすればよいですか?

ありがとうございます。 :)

+2

あなたはあなた自身の質問でGoogleで検索しましたか? – zerkms

答えて

0

可能です。ここに素敵なexampleがあります。そしてmsdn documentation

FileStream outputStream = new FileStream(destinationoffile, FileMode.Create); 
FtpWebRequest request = FtpWebRequest.Create(FTPAddress + "/" + filename) as FtpWebRequest; 
request.Credentials = new NetworkCredential(username, password); 
request.UsePassive = true; 
request.Method = WebRequestMethods.Ftp.DownloadFile; 

FtpWebResponse response = request.GetResponse() as FtpWebResponse; 
Stream responseStream = response.GetResponseStream(); 
long cl = response.ContentLength; 
int bufferSize = 2048; 
int readCount; 
float perc = 0; 
float result = 0; 
float totalread = 0; 
byte[] buffer = new byte[bufferSize]; 
readCount = responseStream.Read(buffer, 0, bufferSize); 
while (readCount > 0) 
{ 
     totalread += readCount; 
     result = totalread/fileSize; 
     perc = result * 100; 
     progress.Value = perc; // this is a progressbar on my screen so may show error for you 
     outputStream.Write(buffer, 0, readCount); 
     readCount = responseStream.Read(buffer, 0, bufferSize); 
} 

responseStream.Close(); 
response.Close(); 
outputStream.Close(); // keeps file open if not closed 
+0

"簡単なFTP in WPF and .Net" ---ちょっと不思議なことに、このコードでWPF固有のものは何ですか? Btwでは、そのサンプルに例外がスローされた場合、ストリームは破棄されません。 *素晴らしい例としてはお勧めできません。 – zerkms

+0

これは単にGoogleを使用して見つけることができる回答のタイプです。だから私は公式のドキュメンテーション(MSDN)と例を提供しました。 FtpWebRequestはWPFで利用できるので、あなたの不満は何も分かりません。彼がWPFに2つの数字を追加する方法を尋ねれば、あなたは答え "c = a + b;" WPF固有のものではありませんか? – colithium

+0

例では一般的に堅牢なエラー処理を提供していないことはよく知られています。それは問題をあいまいにするだけです。あなたがSO上のすべての例に完全で完全なエラー処理を追加したい場合は、私のゲストになります。 – colithium

関連する問題