【问题标题】:Rename FTP folder name using c# (Or move a ftp folder to the same directory with different name)使用 c# 重命名 FTP 文件夹名称(或将 ftp 文件夹移动到具有不同名称的同一目录)
【发布时间】:2015-05-19 16:45:36
【问题描述】:

我正在使用名为 SecureFtpCnnection 的第三方 dll,但它没有任何方法可以重命名文件夹或将一个文件夹复制到另一个文件夹,请您帮帮我。

dll 引用在这里https://enterprisedt.com/products/edtftpnetpro/doc/manual/api/html/Methods_T_EnterpriseDT_Net_Ftp_SecureFTPConnection.htm

谢谢

【问题讨论】:

  • 咳咳,选择另一个库会有很大帮助。
  • 我一定会使用那个 dll。我已经尝试了很多来自互联网的选项,例如 FtpWebRequest 类,但没有太大帮助:(
  • 至少尝试告诉我们您使用的是什么 FTP 产品。我找不到对此 dll 的任何引用

标签: c# ftp


【解决方案1】:

SecureFTPConnection 的基类 ExFTPConnection 似乎有一个方法“RenameFile”,注释为“重命名文件或目录”。我无法检查这是您必须提供的相对路径还是绝对路径,但我猜它是相对的。所以将 dir 更改为父目录和

conn.RenameFile("oldDir", "newDir");

https://enterprisedt.com/products/edtftpnetpro/doc/manual/api/html/M_EnterpriseDT_Net_Ftp_ExFTPConnection_RenameFile.htm

【讨论】:

  • 哦,非常感谢:)。但如果同名文件夹已经存在,那么它将覆盖该文件夹?
  • 我无法从头顶回答这个问题,抱歉。但我明天可以检查。或者你可以自己做一个小测试。最安全的方法是检查 enterprisedt.com/products/edtftpnetpro/doc/manual/api/html/… 是否存在目标目录,如果返回 false 则重命名,否则选择新名称...
  • 您好,所以我仔细查看了您的库,似乎如果您重命名并且目标文件夹已经存在,它会尝试完成操作。我想这取决于它的 ftp 服务器实现。我尝试使用我们的 cerberus 实例,如果 newDir 已经存在,它会将源文件夹“oldDir”放在目标文件夹“newDir”的内部(因此有一个路径 ./newDir/oldDir)。因此,在重命名之前,请坚持检查新目录名称是否存在,以防止出现不必要的行为。
  • 谢谢@josef_wurzel。伙计,它工作正常,非常感谢您的帮助:)
  • 很高兴我能帮上忙!那你能把我的答案标记为有效答案吗?谢谢!
最近更新 更多