2014-02-26 91 views
0

我希望获得内部手机存储文件以及SD卡文件...但我没有得到任何方法来执行此操作这是我的代码以获取外部存储的目录从手机内存中获取文件以及SD卡文件

String root = Environment.getExternalStorageDirectory().toString(); 

,这是功能

private void getAllFilesOfDir(File directory) { 
      Log.d(TAG, "Directory: " + directory.getAbsolutePath() + "\n"); 

      final File[] files = directory.listFiles(); 

      if (files != null) { 
       for (File file : files) { 
        if (file != null) { 
         if (file.isDirectory()) { // it is a folder... 
          getAllFilesOfDir(file); 
         } 
         else { // it is a file... 
          myList.add(file.getAbsolutePath() + "\n"); 
         } 
        } 
       } 
      } 

,但我想获得文件的形式存储手机的任何帮助,请????

+0

许多文件和内部存储的目录仅限于由系统组件或其他应用程序访问拥有它们。即使一些本身可读的文件位于不可列举的/ data等目录下面,也会影响树的扩展。 –

+0

但假设我想访问从相机..或一个PDF文件等拍摄的图像..... – user3297438

+0

如果它不允许访问,但仍然应该有功能,我不khow可以让我们访问一些他们...... – user3297438

回答

0

对于检查是否该器件具有内部存储,外部存储或两者,使用此:

if (Environment.MEDIA_MOUNTED.equals(state)) { 
    mExternalStorageAvailable = mExternalStorageWriteable = true; 
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) { 
    mExternalStorageAvailable = true; 
    mExternalStorageWriteable = false; 
} else { 
    mExternalStorageAvailable = mExternalStorageWriteable = false; 
} 

if (mExternalStorageAvailable) { 
    File path = new File(Environment.getExternalStorageDirectory() 
            .getAbsolutePath() 
         + "/EMD Systems/Append"); 
    if (!path.exists()) { 
     path.mkdirs(); 
    } 
    f = path; 
} else { 
    File dir1 = getApplicationContext().getDir("EMD Systems", Context.MODE_PRIVATE); 
    File dir = new File(dir1 + "/Append"); 
    if (!dir.exists()) { 
     dir.mkdirs(); 
    } 
    f = dir; 
} 
+0

这似乎不回答问题。 –

+0

对不起,上面我没有提到如何从内部(电话)存储或外部存储文件请执行此操作“File [] files = f.listFiles();”列出文件 –