Re: How to count folders recursively
OK, so does the code in my previous post help?
/home/site.com/file1
/home/site.com/file2
/home/site.com/file3
var options =
EnumerationOptions.AllDirectories |
EnumerationOptions.EnumerateDirectories;
var filesAndDirectories =
session.EnumerateRemoteFiles(directory, null, options);
var filenames = filesAndDirectories.Select(file => file.FullName);
File.WriteAllLines(outputFile, filenames);
1) all the files put in the list of recursive?
session.EnumerateRemoteFiles(
"/home/user/", null,
EnumerationOptions.AllDirectories | EnumerationOptions.EnumerateDirectories)
No overload for method 'EnumerateRemoteFiles' takes 1 arguments. "[String: 16; Column: 19]
// Setup session options
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.sftp,
HostName = "server.com",
UserName = "user",
Password = "pass",
SshHostKeyFingerprint = "ssh-rsa 2048 00:00:00:00:00:00:00:00:00:00:00:00:00:00:00:1f"
};
using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);
var directory = session.ListDirectory("/home/user/");
//var filesCount = session.EnumerateRemoteFiles(directory.ToString(), null, EnumerationOptions.AllDirectories);
//var directoriesCount = session.EnumerateRemoteFiles(directory.ToString(), null, EnumerationOptions.AllDirectories | EnumerationOptions.EnumerateDirectories).Where(file => file.IsDirectory);
return filesCount.Count() ;
session.Close();
}
directory
is result of session.ListDirectory
is your code.
session.EnumerateRemoteFiles
.
session.EnumerateRemoteFiles("/home/user/")
/home/user/
Error listing directory 'WinSCP.RemoteDirectoryInfo'.
No such file or directory.
Error code: 2
Error message from server: No such file
int directoriesCount =
session.EnumerateRemoteFiles(directory, null, EnumerationOptions.AllDirectories | EnumerationOptions.EnumerateDirectories)
.Where(file => file.IsDirectory)
.Count();
// Connect
session.Open(sessionOptions);
var directory = session.ListDirectory("/admin");
var filesCount = session.EnumerateRemoteFiles(directory.ToString(), null, EnumerationOptions.AllDirectories);
return fileCount;
WinSCP.Session+<DoEnumerateRemoteFiles>d__73