如何将文件保存到手机上的特定位置

时间:2014-11-24 07:37:41

标签: java android

我想让我的应用在SD卡上创建一个文件夹并将文件保存在其中。这就是我现在只需将其保存在我的应用数据中。

    File file = new File(context.getExternalFilesDir(""), fileName);         

    FileOutputStream os = null; 

    try { 
        os = new FileOutputStream(file);
        wb.write(os);
        Log.w("FileUtils", "Writing file" + file); 
        success = true; 
    } catch (IOException e) { 
        Log.w("FileUtils", "Error writing " + file, e); 
    } catch (Exception e) { 
        Log.w("FileUtils", "Failed to save file", e); 
    } finally { 
        try { 
            if (null != os) 
                os.close(); 
        } catch (Exception ex) { 
        } 
    } 

我该怎么做?

好吧,所以我这样做了。我甚至这样做了吗?

    String fullPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "";
    File file = new File(fullPath);
        if (!file.exists()) {
            file.mkdirs();
        }


    FileOutputStream os = null; 

    try { 
        os = new FileOutputStream(file);
        wb.write(os);
        Log.w("FileUtils", "Writing file" + file); 
        success = true; 
    } catch (IOException e) { 
        Log.w("FileUtils", "Error writing " + file, e); 
    } catch (Exception e) { 
        Log.w("FileUtils", "Failed to save file", e); 
    } finally { 
        try { 
            if (null != os) 
                os.close(); 
        } catch (Exception ex) { 
        } 
    }

2 个答案:

答案 0 :(得分:1)

您最好的选择是使用Environment.getExternalStorageDirectory()查找要使用的根路径。

但请注意,这不是sd-card,而是来自docs:

  

注意:不要在这里混淆“外部”这个词。此目录最好被视为媒体/共享存储。它是一个文件系统,可以容纳相对大量的数据,并在所有应用程序之间共享(不强制执行权限)。传统上这是一张SD卡,但它也可以作为内置存储器实现,该设备不同于受保护的内部存储器,可以作为文件系统安装在计算机上。

示例,只需将第一行更改为:

 File file = new File(Environment.getExternalStorageDirectory(), fileName);

需要目录?:

 File dir = new File(Environment.getExternalStorageDirectory(), "yourdir");
 dir.mkDirs();
 File file = new File(dir, fileName);

答案 1 :(得分:0)

试试这个,像这样创建文件夹

String fullPath = Environment.getExternalStorageDirectory()
            .getAbsolutePath() + "/Foldername";
File dir = new File(fullPath);
        if (!dir.exists()) {
            dir.mkdirs();
        }