以下内容未列出/ home目录中的文件,而是列出/(root)目录中的文件:
sftp.ChangeDirectory("home");
sftp.ListDirectory("").Select (s => s.FullName);
以下不起作用并返回SftpPathNotFoundException:
sftp.ChangeDirectory("home");
sftp.ListDirectory("home").Select (s => s.FullName);
以下是列出/ home目录中文件的正确方法
sftp.ChangeDirectory("/");
sftp.ListDirectory("home").Select (s => s.FullName);
递归获取
void Main()
{
using (var client = new Renci.SshNet.SftpClient("sftp.host.com", "user", "password"))
{
var files = new List<String>();
client.Connect();
ListDirectory(client, ".", ref files);
client.Disconnect();
files.Dump();
}
}
void ListDirectory(SftpClient client, String dirName, ref List<String> files)
{
foreach (var entry in client.ListDirectory(dirName))
{
if (entry.Name == "." || entry.Name == "..")
continue;
if (entry.IsDirectory)
{
ListDirectory(client, entry.FullName, ref files);
}
else
{
files.Add(entry.FullName);
}
}
}