代码之家  ›  专栏  ›  技术社区  ›  UMAR-MOBITSOLUTIONS

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

  •  6
  • UMAR-MOBITSOLUTIONS  · 技术社区  · 14 年前

    我想让android相机库文件夹路径保存图像

    在不同的移动电话中它是不同的例如在银河

    /sdcard/DCIM/camera/image.jpg
    

    比如在其他手机里

    /sdcard/media/images/image.jpg
    

    动态获取库文件夹的热路径?

    任何帮助都将不胜感激。

    1 回复  |  直到 10 年前
        1
  •  3
  •   FabianCook    12 年前

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

    文件浏览器.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);
    
     }
     }
     }