Я хотел бы посчитать все файлы в удаленной папке. Я нашел "официальный" скрипт WinSCP, в котором перечислены все файлы в папке. Но я бы хотел посчитать и сохранить результат в переменной. Какой самый простой способ?
try
{
// Setup session options
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = "example.com",
UserName = "user",
Password = "mypassword",
SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx..."
};
using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);
RemoteDirectoryInfo directory =
session.ListDirectory("/subdoms/admin/");
foreach (RemoteFileInfo fileInfo in directory.Files)
{
Console.WriteLine(
"{0} with size {1}, permissions {2} and last modification at {3}",
fileInfo.Name, fileInfo.Length, fileInfo.FilePermissions,
fileInfo.LastWriteTime);
}
}
return 0;
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e);
return 1;
}
Используйте EnumerateRemoteFiles и получите счет, как только у вас будет вся информация о файле основного родительского каталога.
foreach (RemoteFileInfo fileInfo in directory.Files)
{
Console.WriteLine("{0} with size {1}, permissions {2} and last modification at {3}",
fileInfo.Name, fileInfo.Length, fileInfo.FilePermissions,
fileInfo.LastWriteTime);
Console.WriteLine(fileInfo.FullName);
string FilePath = fileInfo.FullName;
if (session.FileExists(FilePath))
{
Console.WriteLine("Folder exists");
var a = session.EnumerateRemoteFiles(FilePath, null,
EnumerationOptions.AllDirectories);
Console.WriteLine(a.Count());
}
}
session.EnumerateReportFiles
см. Как получить файлы удаленного каталога, используя шаблон с С# и WinSCP
$files =
$session.EnumerateRemoteFiles(
$remotePath, $wildcard, [WinSCP.EnumerationOptions]::None)
var filecount = $files.Count();
int filecount = session.EnumerateRemoteFiles("/subdoms/admin", "*.php", EnumerationOptions.None).Count(); label3.Text = Convert.ToString(filecount);