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

Exception when downloading file from box.com - Android

我正在尝试使用 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();
        }

做所有检查

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();
            }
        }

答案是创建一个新文件。然后在 File 实例上调用 .createNewFile() 。然后调用我发布的所有代码,只是将 运行 放在后台。这就是我在这里问的原因 - 我想知道我是否为 Android 做了一些不正确的事情,而我确实是。盒子联网操作需要在一个线程上完成。 太糟糕了,他们从不显示这个用于下载文件。太糟糕了,没有一个在网络上使用 Android DSK 下载文件的例子。