Я уже немного вытягиваю волосы на это. Предполагается, что следующий метод загрузит файл и сохранит его в указанном на жестком диске месте.
private static void saveImage(Context context, boolean backgroundUpdate, URL url, File file) {
    if (!Tools.checkNetworkState(context, backgroundUpdate))
        return;
    // Get the image
    try {
        // Make the file
        file.getParentFile().mkdirs();
        // Set up the connection
        URLConnection uCon = url.openConnection();
        InputStream is = uCon.getInputStream();
        BufferedInputStream bis = new BufferedInputStream(is);
        // Download the data
        ByteArrayBuffer baf = new ByteArrayBuffer(50);
        int current = 0;
        while ((current = bis.read()) != -1) {
                baf.append((byte) current);
        }
        // Write the bits to the file
        OutputStream os = new FileOutputStream(file);
        os.write(baf.toByteArray());
        os.close();
    } catch (Exception e) {
        // Any exception is probably a newtork faiilure, bail
        return;
    }
}
Кроме того, если файл не существует, он должен создать каталог для файла. (И если в этом месте есть еще один файл, он ничего не должен делать). Однако по какой-то причине метод mkdirs() никогда не создает каталог. Я пробовал все из явных круглых скобок, чтобы явно создать родительский класс файлов, и ничего не работает. Я вполне уверен, что диск доступен для записи, поскольку он только вызывается после того, как это уже определено, и это верно после выполнения его во время отладки. Таким образом, метод выходит из строя, потому что родительские каталоги не создаются. Может ли кто-нибудь сказать мне, если что-то не так с тем, как я его называю?
Кроме того, если это помогает, вот источник для файла, в который я его вызываю:
Спасибо
