Как получить полный путь к файлу из приложения Android

Вопрос:У меня есть несколько текстовых файлов в моей папке sdcard, и у меня есть функция, которая позволяет пользователю выбрать нужный файл. но stil, я должен использовать pass filepath для конструктора файлов (см. строку 2). textfile.java: File sdcard = Environment.getExternalStorageDirectory(); //Get the text file File file = new File(sdcard,"my/ans.txt");//line2 //ob.pathh //Read text from file StringBuilder text

Вопрос:

У меня есть несколько текстовых файлов в моей папке sdcard, и у меня есть функция, которая позволяет пользователю выбрать нужный файл.

но stil, я должен использовать pass filepath для конструктора файлов (см. строку 2).
textfile.java:

File sdcard = Environment.getExternalStorageDirectory(); //Get the text file File file = new File(sdcard,»my/ans.txt»);//line2 //ob.pathh //Read text from file StringBuilder text = new StringBuilder(); try { BufferedReader br = new BufferedReader(new FileReader(file)); }

Я хочу, чтобы второй параметр, т.е. путь к файлу, был сохранен как строка.
есть ли способ, которым я могу получить полный путь к выбранному файлу.
Код, который я использовал, выглядит следующим образом:

AndroindApplication.java:

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.util.Log; import android.view.View; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; public class AndroindApplication extends ListActivity { private List<String> item = null; public List<String> path = null; private String root=»/»; private TextView myPath; public String pathh; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.sdcard); myPath = (TextView)findViewById(R.id.path); getDir(«/sdcard/»); } 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, R.layout.row, item); setListAdapter(fileList); } @Override protected void onListItemClick(ListView l, View view, int position, long id) { File file = new File(path.get(position)); pathh=path.get(position); Log.e(«path=»+path,»dxgx»); if (file.isDirectory()) { if(file.canRead()) getDir(path.get(position)); else { new AlertDialog.Builder(this) .setIcon(R.drawable.icon) .setTitle(«[» + file.getName() + «] folder can’t be read!») .setPositiveButton(«OK», new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub } }).show(); } } else { Intent myIntent = new Intent(view.getContext(), textfile.class);//goes to textfile.java startActivityForResult(myIntent, 0); } } }

Мне нужно получить абсолютный путь, чтобы я мог передать его

File file = new File(sdcard,»my/ans.txt»);//line2

и не нужно указывать путь к файлу в коде, когда новый файл должен быть открыт

В любом случае я могу получить его из AndroidApplication.java?

Ответ №1

Если я понимаю, что вы хотите, вы можете использовать метод getAbsolutePath(), чтобы получить полный путь к файлу.

Edit:

Сохраните путь к вашей папке, т.е.

String myPath = sdcardEnvironment.getExternalStorageDirectory().getAbsolutePath() + «/my/»;

а затем получить доступ к файлам следующим образом:

File currentFile = new File(myPath + path.get(position));

Оцените статью
Добавить комментарий