2

有问题导致找不到它:

  1. 如何检查目录是否包含任何内容,例如文件夹或文件,无论...还是为空

  2. 如何删除一个空目录?

  3. 即使有内容,如何删除目录。

例如,为了创建目录,我使用以下函数:

Public Sub CreateDirectory(path As String)
    If session IsNot Nothing Then
        session.CreateDirectory(path)
    End If
End Sub

注释中要求的日志文件:

> 2015-10-05 11:11:13.010 MLST /\MainFolder 2014\ANIA
< 2015-10-05 11:11:13.104 550 MLST command failed: No such file or directory.
. 2015-10-05 11:11:13.104 Could not retrieve file information
< 2015-10-05 11:11:13.104 Script: Can't get attributes of file '\MainFolder 2014\ANIA'.
< 2015-10-05 11:11:13.104 Script: Could not retrieve file information

< 2015-10-05 11:11:13.104 MLST command failed: No such file or directory.
. 2015-10-05 11:11:13.104 Script: Failed
4

1 回答 1

2

要检查目录中是否有任何文件,请使用Session.EnumerateRemoteFiles method

Dim anyFile As Boolean =
    mySession.EnumerateRemoteFiles(
        path, Nothing, EnumerationOptions.MatchDirectories).Any()

Session.EnumerateRemoteFilesWinSCP 5.9 开始支持。


对于旧版本的 WinSCP,使用 列出目录内容Session.ListDirectory并过滤掉...条目:

Dim anyFile As Boolean =
    mySession.ListDirectory(path).Files.
    Where(Function(file) (file.Name <> "..") And (file.Name <> ".")).
    Any()

要删除任何目录,无论是否为空,请使用Session.RemoveFiles

session.RemoveFiles(RemotePath.EscapeFileMask(path))
于 2015-10-05T07:21:11.833 回答