从box.com下载文件时出现异常 - Android

时间:2017-07-05 17:44:42

标签: android box

我正在尝试使用Box android SDK下载文件。问题似乎与destinationFile参数有关。 box.com调用是检查destinationFile是否存在 - 但为什么?我得到了java.io.FileNotFoundException。

destinationFile = new File(getFilesDir(), "myfile.crs");
        // destinationFile = new File(getFilesDir(),"/");
        try {
            BoxDownload fileDownload = mFileApi.getDownloadRequest(destinationFile, fileID)
                    // Optional: Set a listener to track download progress.
                    .setProgressListener(new ProgressListener() {
                        @Override
                        public void onProgressChanged(long numBytes, long totalBytes) {
                            // Update a progress bar, etc.
                        }
                    })
                    .send();
        } catch (BoxException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

2 个答案:

答案 0 :(得分:0)

进行所有检查

Log.i(getClass().getName(),"Does File exists:"+(destinationFile.exists()?"Yes":"No"));
        Log.i(getClass().getName(),"Is it A file:"+(destinationFile.isFile()?"Yes":"No"));
        Log.i(getClass().getName(),"Is it Writable:"+(destinationFile.canWrite()?"Yes":"No"));
        Log.i(getClass().getName(),"Is it A Readable:"+(destinationFile.canRead()?"Yes":"No"));
        Log.i(getClass().getName(),"Path:"+destinationFile.getAbsolutePath());

您最有可能发现文件不存在,然后在使用之前执行此操作。

if(!destinationFile.exists()){
            try {
                destinationFile.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

答案 1 :(得分:0)

答案是创建一个新文件。然后在File实例上调用.createNewFile()。然后调用我发布的所有代码,除了在后台运行它。这就是我在这里问的原因 - 我想知道我是不是做了一些不正确的Android而且我是。 Box网络操作需要在线程上完成。 太糟糕了,他们从未在下载文件时显示此信息。太糟糕了,没有一个在网络上下载Android DSK文件的例子。