我需要覆盖的文件在我的本地机器上。我正在检索的文件来自我的 FTP 服务器。这些文件都具有相同的名称,但字节不同,例如,它们被更新。
我将本地计算机上的文件用作目标文件——这意味着我使用它们的名称可以在 FTP 服务器上轻松找到它们。
这是我写的代码:
private void getFiles () {
string startupPath = Application.StartupPath;
/*
* This finds the files within the users installation folder
*/
string[] files = Directory.GetFiles(startupPath + "\\App_Data", "*.*",
SearchOption.AllDirectories);
foreach (string s in files)
{
/*
* This gets the file name
*/
string fileName = Path.GetFileName(s);
/*
* This gets the folder and subfolders after the main directory
*/
string filePath = s.Substring(s.IndexOf("App_Data"));
downloadFile("user:pass@mysite.tk/updates/App_Data/" + fileName,
startupPath + "\\" + filePath);
}
}
private void downloadFile (string urlAddress, string location)
{
using (WebClient webClient = new WebClient())
{
System.Uri URL = new System.Uri("ftp://" + urlAddress);
webClient.DownloadFileAsync(URL, location);
}
}
代码完成后,由于某种原因,子文件夹中的文件显示为 0KB。这很奇怪,因为我知道我的 FTP 服务器上的每个文件都大于 0KB。
我的问题是:为什么子文件夹中的文件显示为 0KB?
如果这篇文章不清楚,请告诉我,我会尽力澄清。