【问题标题】:WinSCP Session::RemoveFiles - Delete specified files in sub directoriesWinSCP Session::RemoveFiles - 删除子目录中的指定文件
【发布时间】:2014-05-07 02:36:35
【问题描述】:

[问题] Session::RemoveFiles() 是否删除源目录子目录中的文件?如果没有,如何实现这个能力?

(请不要问我为什么将远程目录设置为/C/testTransfer/。代码仅用于测试目的。)

我有一个使用 WinSCP .Net 程序集的 SFTP 程序。程序语言是 C++/CLI。它打开一个工作文件。该文件包含多行 FTP 指令。

我必须处理的一种指令是从源目录传输*.txt。源目录可能包含子目录,子目录也可能包含.txt。传输成功后,删除源文件。

我使用Session::GetFiles() 进行传输。它正确地将源中的所有 .txt 文件 (/C/testTransfer/*.txt),甚至是子目录 (/C/testTransfer/sub/*.txt) 中的文件传输到目标。

transferOptions->FileMask = "*.txt";
session->GetFiles("/C/testTransfer", "C:\\temp\\win", false, transferOption);

现在要删除,我使用session->RemoveFiles("/C/testTransfer/*.txt")。我只在源 (/C/testTransfer/*.txt) 中看到 *.txt,但在子目录 (/C/testTransfer/sub/*.txt) 中没有看到,被删除。

【问题讨论】:

    标签: file-io winscp winscp-net


    【解决方案1】:

    Session::RemoveFiles 通常可以删除子目录中的文件。但通配符不是这种方式,因为 WinSCP 不会下降到与通配符 (*.txt) 不匹配的子目录。另请注意,即使您不需要通配符,Session::RemoveFiles 也会删除子目录本身,我不确定您是否想要它。

    尽管您有其他(更好 = 更安全)的选择:

    【讨论】:

      猜你喜欢
      • 2015-10-16
      • 2012-04-02
      • 2013-02-07
      • 1970-01-01
      • 2023-01-04
      • 2017-10-08
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      相关资源
      最近更新 更多