FTP 之 550 permission denied

FTP 之 550 permission denied(转)

做案子時﹐將WinInet.dll封裝﹐用C#調用﹐做了四個函數﹐分別是上傳﹐下載﹐刪除﹐清空文件夾。在開發環境中測試沒有任何問題﹐但拿到正式環境中卻出現"550 /c:/dh/MPF.dir/ABC"不存在的錯誤。但實際上的FTP Home 目錄是MPF.dir, 可是卻出現了/c:/dh/之類的東東。

經過排查﹐開發環境用的是IIS來做的FTP, 而正式環境用的是Server-U做FTP Server. 一定出在配置上﹐而且不是server的問題﹐是編程的問題。

跟蹤后﹐發現是在setCurrentDirectory發生錯誤。設斷點在這里﹐執行前發現當前目錄已經在"/c:/dh/", 原來的程式有一條指令是

ftpFunc.SetCurrentDirectory("/"); // set root folder, 因為"/c:/dh/"的確沒有權限﹐所有出錯誤﹐那為什么當前的default目錄是"/c:/dh"呢?原來server-U在配置當前用戶時有一個選項是: lock user in home directory. 如果沒有被勾選上﹐則表示當前用戶登錄成功后﹐他的home directory是物理路徑. 如果被勾上﹐則他的home directory是"/", 所以才會產生permission denied錯誤.

改正﹕在登錄的時候﹐就把當前用戶的home directory記錄下來﹐然后在那些函數設定目錄的時候調用:

ftpFunc.SetCurrentDirectory(rootPath); // set root folder就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值