Wie man den vollständigen Pfad der Datei aus android-Anwendung
ich habe mehrere text-Dateien in meine sdcard-Ordner und ich habe bauen eine Aktivität, die ermöglicht dem Benutzer, um die gewünschte Datei auswählen können.
aber noch,ich habe zu verwenden, übergeben Sie den Pfad zur Datei Konstruktor(siehe line2).
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));
}
möchte ich den zweiten parameter ie Dateipfad gespeichert werden als string.
gibt es irgendeine Art, wie ich den kompletten Pfad der ausgewählten Datei .
Der code, den ich verwendet hatte ist wie folgt:
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);
}
}
}
Ich brauche, um den absoluten Pfad, so dass ich übergeben Sie es an
File file = new File(sdcard,"my/ans.txt");//line2
und nicht haben, um geben Sie den Dateipfad in den code whenver Sie eine neue Datei geöffnet werden
Ist es trotzdem kann ich es bekommen AndroidApplication.java ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn ich verstehe, was Sie wollen, können Sie
getAbsolutePath()
Methode auf, um den vollständigen Pfad einer Datei.Edit:
Speichern Sie den Pfad zu Ihrem Ordner, d.h.
und dann die Dateien zugreifen, als:
my/ans.txt
eine resource-Datei oder eine Datei, die den vollständigen Pfad ist/mnt/sdcard/my/ans.txt
oder etwas ähnliches?