2014-05-07 148 views
2

[問題] Session::RemoveFiles()是否刪除源目錄子目錄中的文件?如果沒有,如何實現這個能力?WinSCP 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)中,被刪除。

回答

2

Session::RemoveFiles通常可以刪除子目錄中的文件。但通配符不是這種方式,因爲WinSCP不會下降到與通配符不匹配的子目錄(*.txt)。還要注意,即使你不需要通配符,Session::RemoveFiles也會刪除子目錄本身,我不確定你想要它。

雖然你有其他的(更好=更安全)選項:

+0

我正在使用.net庫,無法使用Session.RemoveFiles()刪除FTP文件。我將文件名參數作爲參數傳遞給函數。例如。 session.RemoveFiles(fileInfo.Name); –

+0

如果您有問題,請[提問](http://stackoverflow.com/questions/ask)。 –

+0

我很抱歉,但我的堆棧溢出問題限制已經結束。我無法在此發佈問題 –

相關問題