簡體   English   中英

使用 WinSCP .NET 程序集從 FTP 服務器下載除特定文件夾之外的所有文件

[英]Download all files except a specific folder from FTP server using WinSCP .NET assembly

到目前為止,這是我用來獲取文件夾內所有項目的代碼,但在此文件夾內,有一個我不想包含在下載中的子文件夾,有沒有辦法不包含該文件夾?

session.GetFiles("/*.*", @"D:\\Download\\", false, transferOptions);

TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;

TransferOperationResult transferResult;
transferResult =
    session.GetFiles("/*.*", @"D:\Download\", false, transferOptions);

這是我用來下載所有文件的完整代碼

SessionOptions sessionOptions = new SessionOptions
{
    Protocol = Protocol.Ftp,
    HostName = "sample",
    UserName = "sample",
    Password = "sample",
};

using (Session session = new Session())
{
    // Connect
    session.Open(sessionOptions);

    // Your code
    TransferOptions transferOptions = new TransferOptions();
    transferOptions.TransferMode = TransferMode.Binary;

    TransferOperationResult transferResult;
    transferResult =
        session.GetFiles("/*.*", @"D:\Download\", false, transferOptions);


    // Print results
    foreach (TransferEventArgs transfer in transferResult.Transfers)
    {
        listBox1.Items.Add("Files Downloaded : "+ transfer.FileName);
    }
}

編輯:這是我在FileMask嘗試過的

TransferOptions transferOptions = new TransferOptions();
transferOptions.FileMask = "/*.*|/.git";


TransferOperationResult transferResult;
transferResult =
    session.GetFiles("/*.*", @"D:\Download\", false, transferOptions);

使用TransferOptions.FileMask

IE

TransferOptions transferOptions = new TransferOptions();
transferOptions.FileMask = "*.* | .git/";
...
...
transferResult = session.GetFiles("/someremotefolder/*.*", @"D:\Download\", false, transferOptions);

注意: - 管道| 分隔符結合了includeexclude掩碼。

更多詳情: https : //winscp.net/eng/docs/file_mask#include_exclude

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM