2011-07-27 60 views
2

我在远程服务器的文件夹中设置了excel文件。一个WPF应用程序正在我的本地机器上运行。现在我想能够查看远程文件夹中的文件并下载。如何实现这一目标?我可以使用FTP访问远程文件夹和文件

我可以使用FTP吗? 如果可能如何?

在此先感谢。 :)

+2

哦,来吧,你有没有为你自己的问题搜索? – 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在WPF和.Net”---只是好奇,在这段代码中WPF特定的是什么?顺便说一下,如果在样本中抛出任何异常,流将不会被处置。不会推荐它作为一个很好的例子*。 – zerkms

+0

这是可以通过简单使用Google找到的答案类型。所以我提供了官方文档(MSDN)和一个例子,因为MSDN在某些时候会有些不好的例子。 FtpWebRequest在WPF中可用,所以我不明白你的抱怨是什么。如果他问如何在WPF中添加两个数字,你会抱怨答案“c = a + b;”不是“WPF特定的”? – colithium

+0

实例通常不提供可靠的错误处理是非常常见的知识。它只是掩盖了这个问题。如果你想添加完整的和完整的错误处理到每个例子,然后成为我的客人。 – colithium

相关问题