无法在SD卡的文件末尾添加字节 - 棒棒糖

时间:2017-02-03 12:58:45

标签: android fileoutputstream android-download-manager documentfile

我正在建立一个下载管理器来下载文件并将其保存到我的SD卡中。对于API> = 23,我必须使用FileOutputStream,来帮助我恢复文件以防下载失败。

但是,在API 21& API 22(Lollipop),不能用Sd卡写,但可以在DocumentFile的帮助下完成。
我可以在Lollipop中创建文件和文件夹但是如果不能继续下载该文件已部分下载。我的代码如下:

if (file.exists()) {
                    downloaded = (int) file.length();
                    connection.setRequestProperty("Range", "bytes=" + (file.length()) + "-");

                        String s = file.getPath();
                        String s1 = getRealPathFromURI(documentFile.getUri());
                        s = s.replace(s1, "");
                        Uri uri2 = Uri.parse(documentFile.getUri().toString() + Uri.encode(s));
                        output = getContentResolver().openOutputStream(uri2);
                    } else {
                        connection.setRequestProperty("Range", "bytes=" + downloaded + "-");
                        DocumentFile tempDocumentFile = documentFile.createFile("video/mp4", "temp/" + downloadsPaths.get(i));
                        output = getContentResolver().openOutputStream(tempDocumentFile.getUri());
                    }

它正在重写当前文件。我正在寻找DocumentFile中的处理附加模式。我已提供所有必需的权限。请提前帮助我,谢谢。

0 个答案:

没有答案