2017-04-07 47 views
0

我遇到FluentFTP库的UploadFiles方法问题。这是我的代码:调用UploadFiles时出现“无法找到文件”错误

var count = _client.UploadFiles(filesPaths, remotePath, true, true); 
foreach(var path in filesPaths) 
{ 
    AddLog(string.Format("Uploaded File: {0}", path)); 
} 

并执行UploadFiles后,它抛出一个异常说找不到文件。我发现当我使用remotePath = "/uploads"我有这个问题,但是当我将remotePath设置为"/"时,该方法上传文件没有问题。我检查了用户权限,他可以做任何事情。

我不知道可能是什么问题。我在GitHub中阅读了源代码,但我没有发现任何奇怪的东西。

这是FluentFTP的错误吗?或者我错过了什么?

+0

未来的读者应该看到在库的问题跟踪交叉后,在https://github.com/robinrodricks/FluentFTP/issues/70。根本原因是FTP服务器上的权限问题。 –

回答

0

如果没有创建文件夹/uploads,您将得到该异常。

选项1:手动创建文件夹上传,然后再试一次

选项2:使用

DirectoryExists() - 检查服务器上存在的目录。

CreateDirectory() - 在服务器上创建一个目录。如果父目录 不存在,它们也会被创建。

0

很可能你会得到这个错误,因为你的目标FTP目录没有包含任何文件,并且UploadFiles函数的第三个参数的默认值是FluentFTP.FtpExists.Overwrite。为了克服这个问题,你需要检查目录是否包含任何文件,然后将第三个参数值设置为FluentFTP.FtpExists.NoCheck。您的最终调用是:

var count = _client.UploadFiles(filesPaths, remotePath, 
FluentFTP.FtpExists.NoCheck, true); 
相关问题