WinSCP Session :: RemoveFiles - 删除子目录中的指定文件

时间:2014-05-07 02:36:36

标签: file-io winscp winscp-net

[问题] 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")。我只会在源(*.txt)中看到/C/testTransfer/*.txt,但在子目录(/C/testTransfer/sub/*.txt)中看不到。

1 个答案:

答案 0 :(得分:2)

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

虽然您有其他(更好的=更安全)选项: