1

我已经设置 ClamAv 在 Ubuntu VM (VirtualBox) 内的 docker 容器中运行。我已经编写了以下 C# 程序(从我的 Windows 主机运行)并且能够成功扫描我的 Windows 机器中的本地文件(SendAndScanFileAsync),因为 192.168.0.103:3310(Guest Ububtu 中的 ClamAv)可以从主机 Windows 访问。

我想使用 ScanFileOnServerAsync 方法扫描 Linux 服务器的 Downloads 文件夹中的文件,但我无法这样做,因为我不确定如何在以下代码中指定 Linux 路径。请帮忙。

namespace ClamAvDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var clam = new ClamClient("192.168.0.103", 3310);
            var scanResult = clam.ScanFileOnServerAsync("Downloads"); // Downloads is a folder in Linux Server running as a VM

            switch (scanResult.Result.Result)
            {
                case ClamScanResults.Clean:
                    Console.WriteLine("The file is clean!");
                    break;
                case ClamScanResults.VirusDetected:
                    Console.WriteLine("Virus Found!");
                    Console.WriteLine("Virus name: {0}", scanResult.Result.InfectedFiles.First().VirusName);
                    break;
                case ClamScanResults.Error:
                    Console.WriteLine("Woah an error occured! Error: {0}", scanResult.Result.RawResult);
                    break;
            }
        }
    }
}

要扫描的 Linux 服务器路径:/home/{user}/Downloads

无论我指定的路径格式是什么,我总是会收到此错误 - “下载:lstat() 失败:没有这样的文件或目录。错误”

4

1 回答 1

0

尝试指定完整的文件路径,例如"/home/username/Downloads/filename.ext".

于 2020-01-15T13:46:58.430 回答