如何动态获取android gallery文件夹的路径?

时间:2010-10-22 03:40:44

标签: android

我想获取android相机库文件夹路径以保存图像

在不同的手机中它是不同的,例如在Galaxy中它是

/sdcard/DCIM/camera/image.jpg

以其他手机为例

/sdcard/media/images/image.jpg

hot get path to gallery文件夹动态?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

您可以使用下面的文件资源管理器示例显示您手机的所有内容,您将从项目中选择您的项目

FileExplorer.java

  package com.fileUpload;

  import java.io.File;
  import java.util.ArrayList;
  import java.util.List;
  import android.app.AlertDialog;
  import android.app.ListActivity;
  import android.content.DialogInterface;
  import android.content.Intent;
  import android.os.Bundle;
  import android.view.View;
  import android.widget.ArrayAdapter;
  import android.widget.ListView;
  import android.widget.TextView;

  public class FileExplorer extends ListActivity {

  private List<String> item;
  private List<String> path;
  private String root="/";
  private TextView myPath;

  /** Called when the activity is first created. */
  @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.file);
    myPath = (TextView)findViewById(R.id.path);
    getDir(root);
}

private void getDir(String dirPath)
{
 myPath.setText("Location: " + dirPath);

 item = new ArrayList<String>();
 path = new ArrayList<String>();

 File f = new File(dirPath);
 File[] files = f.listFiles();

 if(!dirPath.equals(root))
 {

  item.add(root);
  path.add(root);

  item.add("../");
  path.add(f.getParent());

 }

 for(int i=0; i < files.length; i++)
 {
   File file = files[i];
   path.add(file.getPath());
   if(file.isDirectory())
    item.add(file.getName() + "/");
   else
    item.add(file.getName());
 }

 ArrayAdapter<String> fileList =
  new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, item);
 setListAdapter(fileList);
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {

File file = new File(path.get(position));

  if (file.isDirectory())
  {
    if(file.canRead())
        getDir(path.get(position));
   else
   {
      new AlertDialog.Builder(this)
      .setIcon(R.drawable.icon)
      .setTitle("[" + file.getAbsolutePath() + "] folder can't be read!")
      .setPositiveButton("OK", 
       new DialogInterface.OnClickListener() {

          @Override
          public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
          }
         }).show();
     }
   }
   else
   {
       Bundle b=new Bundle();
       b.putString("param1",file.getAbsolutePath());
       Intent i=new Intent(this,DemoActivity.class);
       i.putExtras(b);
       startActivity(i);

 }
 }
 }