如何将文件保存到特定地点的电话

如何将文件保存到特定地点的电话

问题描述:

上,我想我的应用程序创建的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) { 
     } 
    } 
+0

它的文件夹比这更简单,看我的更新来回答你的更新。 – weston 2014-11-24 07:58:43

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

但是,请注意,这不是nessasarily SD卡,从docs:

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

例子,只是改变你的第一行是:

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

需要有一个目录?:

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

感谢兄弟! – dtrodriguez 2014-11-24 08:04:05

试试这个,像这样创建

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