Сборка WinSCP .NET - нерекурсивный корневой каталог GetFiles (без подкаталогов)

Я пытаюсь загрузить файлы из каталога без других каталогов в нужном каталоге.

Я искал в Интернете ответ, и единственное, что я нашел, это использовать FileMask "|*/" в TransferOptions, что не работает и ничего не загружает.

Использование последней версии (5.7.5)

TransferOptions t = new TransferOptions { FileMask = "|*/" };

session.GetFiles("/", @"C:\bla", false, t);

person user5441417    schedule 13.10.2015    source источник
comment
Взгляните на SearchOptions msdn.microsoft.com/ en-us/library/ms143448(v=vs.110).aspx   -  person Sybren    schedule 13.10.2015
comment
Как мне использовать это с winscp?   -  person user5441417    schedule 13.10.2015


Ответы (1)


Ваш код для исключения подкаталогов правильный.

См. также FAQ по WinSCP Как передать каталог нерекурсивно?

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

session.PutFiles(@"d:\toupload\*", "/home/user/", false, transferOptions);

Это эквивалент вашего кода.


У вас есть другие проблемы в вашем коде.

  1. #P5# #P6# <блочная цитата> #P7#
  2. #P8# #P9# <блочная цитата> #P10#
  3. Вы должны проверить наличие ошибок, либо проверив возвращенный TransferOperationResult, либо напрямую вызвав .Check().

Итак, правильный код:

TransferOptions t = new TransferOptions { FileMask = "|*/" };

session.GetFiles("/*", @"C:\bla\", false, t).Check();
person Martin Prikryl    schedule 13.10.2015