C# 使用FtpWebRequest移动/重命名文件

C# 使用FtpWebRequest移动/重命名文件,c#,asp.net,ftpwebrequest,C#,Asp.net,Ftpwebrequest,我试图使用FtpWebRequest将一个文件从一个文件夹移动到另一个文件夹,但不断出现错误550。这是我的密码 var requestMove = (FtpWebRequest)WebRequest.Create(Helper.PathFtp + Helper.NewFolder + file); requestMove.Method = WebRequestMethods.Ftp.Rename; requestMove.Credentials = networkCredential; req

我试图使用FtpWebRequest将一个文件从一个文件夹移动到另一个文件夹,但不断出现错误550。这是我的密码

var requestMove = (FtpWebRequest)WebRequest.Create(Helper.PathFtp + Helper.NewFolder + file);
requestMove.Method = WebRequestMethods.Ftp.Rename;
requestMove.Credentials = networkCredential;
requestMove.RenameTo = "../" + Helper.OldFolder + file;
requestMove.GetResponse();
我可以列出、上传、下载和删除文件,但移动/重命名是没有希望的。我在stackoverflow和其他网站上都读过几篇文章,并尝试过将代理设置为null和向路径添加特殊字符,但我找不到有效的解决方案


我在WebRequest.Create中使用的路径是正确的,因为我可以删除它,所以它必须是我遇到问题的重命名。有什么想法吗?

错误550表示访问被拒绝。如果ftp用户具有足够的权限,则防病毒、windows缩略图生成器等程序可能会打开文件并拒绝您的移动请求


您需要联系服务器管理员以解决此问题。

我有权删除和创建文件-然后也可以移动文件。使用具有相同凭据的FTP程序也可以移动文件,所以在这种情况下,我认为这不是权限问题。当仔细观察异常时,它表示找不到文件或文件夹,但它确实存在,并使用下载和删除选项进行了测试,因此它必须重命名为某种错误,即使我只是将其设置为“重命名+文件”,该选项只应重命名文件而不移动它。然后检查FTP软件和重播代码中的命令。当FTP软件重命名时,它使用长路径/folder1/folder2/folder3/userfolder/test,在我的代码中使用它实际上是可行的。唯一的问题是,只有在这个测试场景中我才知道这条路径,即使我知道,它也很容易改变。用户只能访问userfolder及以上。