相关疑难解决方法(0)

C#通过FTP下载所有文件和子目录

一般信息
我还在学习C#.为了帮助自己,我正在尝试创建一个程序,它将自动将我的所有本地项目与我的FTP服务器上的文件夹同步.这样,无论我是在学校还是在家,我总是可以使用相同的项目.

我知道像Dropbox这样的程序已经为我做了这个,但我想创造类似的东西,我自己会教我很多东西.

问题
我迈向目标的第一步是从我的FTP服务器下载所有文件,子目录和子文件.我已经设法从下面的代码下载目录中的所有文件.但是,我的代码只列出了主目录中的文件夹名称和文件.子文件夹和子文件永远不会返回,也永远不会下载.除此之外,服务器返回550错误,因为我正在尝试下载文件夹,就像它们是文件一样.我已经在这上面了4个多小时了,但我找不到任何关于如何解决这些问题并让它发挥作用的事情.因此,我希望你们能帮助我:)

public string[] GetFileList()
{
    string[] downloadFiles;
    StringBuilder result = new StringBuilder();
    WebResponse response = null;
    StreamReader reader = null;

    try
    {
        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
        request.UseBinary = true;
        request.Method = WebRequestMethods.Ftp.ListDirectory;
        request.Credentials = new NetworkCredential(ftpUserName, ftpPassWord);
        request.KeepAlive = false;
        request.UsePassive = false;
        response = request.GetResponse();
        reader = new StreamReader(response.GetResponseStream());
        string line = reader.ReadLine();
        while (line != null)
        {
            result.Append(line);
            result.Append("\n");
            line = reader.ReadLine();
        }
        result.Remove(result.ToString().LastIndexOf('\n'), 1);
        return result.ToString().Split('\n');
    }
    catch (Exception ex)
    {
        if …
Run Code Online (Sandbox Code Playgroud)

.net c# ftp ftpwebrequest

16
推荐指数
1
解决办法
3万
查看次数

Delete files older than X days from FTP server with PowerShell or batch file

I have to write a script which accesses an FTP server, and then deletes all *.zip files which are older than X days.

As clarification: The script can't run on the FTP server.

This is what I have so far:

$ftpServer = "RandomFTPServer"
$ftpUser = "Username"
$ftpPassword = Read-Host "Password" -AsSecureString

$credentials = New-ObjectSystem.Net.NetworkCredential($ftpUser, $ftpPassword)

function Get-FtpRequest($ftpPath) {
    $ftpRequest = [System.Net.FtpWebRequest]::Create("$ftpServer/$ftpPath")
    $ftpRequest.Credentials = $credentials
    $ftpRequest.UseBinary = $true 
    $ftpRequest.KeepAlive = $true
    $ftpRequest.UsePassive = $true
    return $ftpRequest
}
Run Code Online (Sandbox Code Playgroud)

Any tips on what …

.net ftp powershell batch-file ftpwebrequest

4
推荐指数
1
解决办法
7816
查看次数

标签 统计

.net ×2

ftp ×2

ftpwebrequest ×2

batch-file ×1

c# ×1

powershell ×1