2

我正在开发一个使用文件上传的应用程序。我的客户端在 Windows Server 上使用 Symantec End Point Protection。

因此,我正在使用示例代码来检查文件是否正在上传到服务器上。

我正在使用命令行调用 SEP。

示例代码:

              String[] commands =  new String[6];
              commands[0] = "cmd";
              commands[1] = "/c";

              commands[2] = "C:\\Program Files\\Symantec\\Symantec Endpoint Protection\\DoScan.exe";
              commands[3] = "/cmdlinescan";
              commands[4] = "/ScanFile";
              commands[5] = fileName;

             Process process = Runtime.getRuntime().exec(commands);

             int exitVal = process.waitFor();

我也遇到过,SEP 为每个扫描的文件生成一个每日日志。

scanResult = "C:\\Documents and Settings\\All Users\\Application Data\\"Symantec\\Symantec Endpoint Protection\\Logs\\";   

所以,在这里我想扫描文件。

我已经在位置放置了开始读取文件的检查。一旦它从进程中返回 0

"int exitVal = process.waitFor();"在 SEP 将日志写入文件之前返回。

因此,SEP 是否"DoScan.exe"会在内部调用线程来开始扫描文件。

如果是,请给我建议一个替代方案。

任何帮助,将不胜感激

4

1 回答 1

0

我创建了一个适合我的解决方案。

在这里,int exitVal = process.waitFor();在 Symantec AV 将结果写入 .log 文件之前返回的情况。

所以,我写了一个循环,它会根据日志文件的最后修改日期不断检查。

有一次,日志文件被修改,我读取结果。

于 2011-03-16T12:35:36.993 回答