[英]How to get filepath from sdcard in android
When I clicked on button I want to get a filepath
from a filename
. 当我单击按钮时,我想从filename
获取filename
filepath
。 I am using custom BaseAdapter for that I am passing ArrayList<String>
. 我正在使用自定义BaseAdapter来传递ArrayList<String>
。 I am getting file name but also i need absolute filepath from sdcard. 我正在获取文件名,但我也需要来自sdcard的绝对文件路径。 Here is my code in getView(); 这是我在getView()中的代码;
String mFileName = myitem.get(position);
viewHolder.bt_encrypt.setTag(mFileName);
In onclick of button I added below piece of code to get a file when i clicked on button of same row 在按钮的onclick中,当我单击同一行的按钮时,我在下面的代码段中添加了一个文件
String fileName = (String) v.getTag();
From this how to get filepath ? 从这个如何获取文件路径?
full code 完整的代码
private void getDir(String dirPath){
item = new ArrayList<String>();
path = new ArrayList<String>();
File f = new File(dirPath);
File[] files = f.listFiles();
if(!dirPath.equals(MainActivity.root_sd_path)){
item.add(MainActivity.root_sd_path);
path.add(MainActivity.root_sd_path);
item.add("../");
path.add(f.getParent());
}
for(int i=0; i < files.length; i++)
{
File file = files[i];
if(!file.isHidden() && file.canRead()){
path.add(file.getAbsolutePath());
if(file.isDirectory()){
item.add(file.getName() + "/");
}else{
item.add(file.getName());
}
}
}
SDcardFiles sdcardFilesAdapter = new SDcardFiles(item, dirPath);
setListAdapter(sdcardFilesAdapter);
}
public class SDcardFiles extends BaseAdapter{
private LayoutInflater mInflator;
String myfilename;
ArrayList<String> myitem;
File sdFile;
private String mFileName;
public SDcardFiles(ArrayList<String> fileItem, String fileDirpath){
myitem = new ArrayList<String>();
myitem = fileItem;
mInflator = MyFiles.this.getLayoutInflater();
@Override
public int getCount() {
return myitem.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return myitem.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View view, ViewGroup parent) {
ViewHolder viewHolder;
if (view == null) {
view = mInflator.inflate(R.layout.myfiles_sdfiles, null);
viewHolder = new ViewHolder();
viewHolder.fileName = (TextView)view.findViewById(R.id.file_name);
viewHolder.bt_encrypt = (Button)view.findViewById(R.id.encrypt);
view.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) view.getTag();
}
mFileName = myitem.get(position);
viewHolder.bt_encrypt.setTag(mFileName);
String myFileName = mFileName;
System.out.println("mFile====>"+myFileName);
if(myFileName != null && myFileName.length() > 0){
viewHolder.fileName.setText(myFileName.toString());
}
viewHolder.bt_encrypt.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String fileName = (String) v.getTag();
System.out.println("inside encryption====>"+fileName);
// Here I need filepath also
}
THANKS 谢谢
you can try something like this 你可以尝试这样的事情
Environment.getExternalStorageDirectory().getAbsolutePath(); Environment.getExternalStorageDirectory()。getAbsolutePath();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.