使用 PowerShell 通过 SFTP 对 ZIP 文件中的文件进行计数

Count files in a ZIP file over SFTP using PowerShell

我正在使用 PowerShell 通过主机、端口、用户名和密码连接到 SFTP。我想计算特定 zip 文件夹中的文件数,而不必在我的本地计算机上下载 zip 文件夹并进行计数。请分享执行此操作的逻辑片段。我调查了这个,但在 zip 文件夹中执行此操作似乎有点棘手。

这不是一件容易的事。 SFTP 中没有 API 可以完全远程执行此操作。基本上有两种解决方案:

  1. 使用SFTP 只下载ZIP 中央目录(基本上是放在ZIP 文件末尾的列表)。并在本地解码目录。对于 C#,这在我对 . Though as mentioned there, there's a bug in SSH.NET that requires a workaround with implementing an interface. While that's probably 的回答中有所介绍,我从未这样做过。

  2. 如果您可以通过 SSH shell 访问服务器,请使用远程 zip 命令列出文件的内容。或者构建另一个 API(如 Web 服务)。


顺便说一句,请注意没有像 ZIP “文件夹” 这样的东西。 ZIP 是一个存档 文件 。只有 Windows 调用 ZIP 文件 “文件夹”.