You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PowerShell通过FTP删除目录?附文件删除实现代码

使用PowerShell通过FTP删除目录

很高兴看到你已经搞定了FTP删除文件的操作!要实现FTP删除目录,逻辑和你现有的代码几乎一致,只需要调整请求方法就行,不过有个重要细节要注意:绝大多数FTP服务器要求待删除的目录必须是空的(目录里不能有文件或子目录),不然会返回错误哦。

基础实现(删除空目录)

直接修改你现有的代码,把请求方法换成RemoveDirectory,同时把URL指向要删除的目录路径:

$url = "ftp://server.net/path/to/place/target-directory"
$userName = "username"
$password = "p@ssw0rd!"

$ftpreq = [System.Net.FtpWebRequest]::Create($url)
$ftpreq.Credentials = New-Object System.Net.NetworkCredential($userName, $password)
# 替换为删除目录的方法
$ftpreq.Method = [System.Net.WebRequestMethods+Ftp]::RemoveDirectory

try {
    $response = $ftpreq.GetResponse()
    Write-Host "目录删除成功"
    $response.Close()
}
catch {
    Write-Host "删除失败: $_"
}

进阶:删除非空目录

如果要删除的目录里还有内容,你得先递归删除目录下的所有文件和子目录,再删除父目录。大致步骤是:

  • 先获取目标目录下的所有文件和子目录列表
  • 遍历列表,删除其中的所有文件
  • 递归删除每个子目录
  • 最后删除原本的空目录

这个逻辑需要额外写遍历和递归的逻辑,你可以基于ListDirectoryDetails方法来获取目录内容,再判断是文件还是目录分别处理。

内容的提问来源于stack exchange,提问作者r12

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:32:49