使用WinSCP .NET程序集删除目录

问题描述 投票:2回答:1

由于问题而无法找到它:

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

  2. 如何删除空目录?

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

例如,我正在使用以下功能创建目录:

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

将文件记录为requested in comment

> 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
vb.net winscp winscp-net
1个回答
2
投票

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

Session.EnumerateRemoteFiles method

从WinSCP 5.9开始支持Dim anyFile As Boolean = mySession.EnumerateRemoteFiles( path, Nothing, EnumerationOptions.MatchDirectories).Any() 。>>


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

..

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

Dim anyFile As Boolean =
    mySession.ListDirectory(path).Files.
    Where(Function(file) (file.Name <> "..") And (file.Name <> ".")).
    Any()
© www.soinside.com 2019 - 2024. All rights reserved.