【问题标题】:Android FTP ChangeDirectory failAndroid FTP ChangeDirectory 失败
【发布时间】:2014-11-14 02:53:34
【问题描述】:

我正在使用 ftp4j 库在 android 上使用 FTPClient 将文本文件从 android 上传到通过 Wifi 连接的本地网络。

如果我没有改变目录,那么默认目录是storage/emulated/0

但如果我尝试client.changeDirectory(Environment.getExternalStorageDirectory().getPath()),它会捕获异常“无法更改目录”。我想从外部文件夹目录上传文件,例如 DCIM、下载、蓝牙文件夹(就像您从 PC 浏览您的 android 时一样)。

public void uploadFile(File fileName){        
    FTPClient client = new FTPClient();
    try {            
        client.connect(ftpHostname);
        client.login(ftpUsername, ftpPassword);
        client.setType(FTPClient.TYPE_BINARY);
        //client.changeDirectory(Environment.getExternalStorageDirectory().getPath());
        client.upload(fileName);
        notification = "The File Has Been Uploaded";
    } catch (Exception e) {         
        Log.e("UploadFTP", e.toString());
        notification = "Upload File Failed";

        try {
            client.disconnect(true);    
        } catch (Exception e2) {
            Log.e("UploadFTPDC", e2.toString());
        }
    } 
}

编辑:

似乎我对自己感到困惑,在我登录 getExternalStorageDirectory() 后它返回 /storage/emulated/0/ 所以无需更改目录。

现在 ftp4j 异常更改为“无法创建文件

11-14 10:59:24.936: E/UploadFTP(1764): it.sauronsoftware.ftp4j.FTPException [code=553, message= Could not create file.]

【问题讨论】:

    标签: java android ftp directory android-external-storage


    【解决方案1】:

    您可能没有远程文件夹的写入权限。请检查您登录的ftp用户是否对该目录有写权限。如果没有,请授予其写入权限。如果它像 unix 系统,请尝试像以下命令一样更改权限:

    chmod +w folder
    

    【讨论】:

      【解决方案2】:

      您不必先创建目录吗?试试这个...

      client.createDirectory("/"+Environment.getExternalStorageDirectory().getPath()+"/");
      client.changeDirectory("/"+Environment.getExternalStorageDirectory().getPath()+"/");
      

      如果这对你有用,请告诉。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-25
        • 2012-01-09
        • 2017-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多