【发布时间】:2020-05-29 01:02:43
【问题描述】:
我有一个可以从远程服务器中删除日志文件的工作程序(基于某种模式)。现在,当我想获得符合我的标准的文件数时,我遇到了问题。原来我无法直接从SftpFile 文件对象中获取计数。设置断点后才能获取文件数。
我可以使用以下方法删除文件:
private void ListDirectory(SftpClient client, String dirName)
{
var fileext = ".log";
var fileextension = fileext.ToString();
foreach (SftpFile file in client.ListDirectory(dirName))
{
var logFilePath = file.FullName;
var fileCount = client.ListDirectory(dirName).GetEnumerator();
if ((file.Name != ".") && (file.Name != "..") && file.Name.EndsWith(fileextension))
{
Console.WriteLine(file.FullName);
client.Delete(logFilePath);
Console.ReadKey();
}
}
}
当我设置断点时,我可以从这一行的嵌套对象中获取计数:
var fileCount = client.ListDirectory(dirName).GetEnumerator();
我有调试的快照:
现在我需要一种方法来直接访问我的模式的文件数,即这一行:
if ((file.Name != ".") && (file.Name != "..") && file.Name.EndsWith(fileextension))
当我尝试如下应用一些 Linq 时:
var fileCount = client.ListDirectory(dirName).Where((file.Name != ".") && (file.Name != "..") && file.Name.EndsWith(fileextension)).Count();
我得到进一步的例外说
无法从“bool”转换为“system.func”
【问题讨论】: