2012-04-12 3 views
0

Ich habe diesen Code, der eine bestimmte Datei unter einem Ordner löscht, die ich zuvor erstellt habe "pass", was ich möchte ist jede Datei löschen ein Benutzer klickt, nicht diese bestimmte Datei " myfile“Löschen von Dateien auf SD-Karte Ich wähle

public void function1(int id){ 
       Toast.makeText(this, "function 1 called", Toast.LENGTH_SHORT).show(); 
       String fileName = Environment.getExternalStorageDirectory() +"/pass/myfile.pdf"; 
       File myFile = new File(fileName); 
       if(myFile.exists()) 
        myFile.delete(); 

ich habe Parameter versucht, zu dieser Klasse von einer anderen Klasse zu übergeben verwendet wird, aber es ist nicht

file_name = getIntent().getStringExtra("fileName"); 
String fileName = Environment.getExternalStorageDirectory() +"/pass/"+file_name; 
        File myFile = new File(fileName); 
        if(myFile.exists()) 
         myFile.delete(); 

diese Klasse übergibt den Dateinamen

 if (position == 0) { 
// pass parameters file name & file url 
Intent s = new Intent(getApplicationContext(),PDFListActivity.class); 
s.putExtra("fileName","myfile.pdf"); 
    startActivity(s); 
funktioniert
+0

, wie Sie die Daten vorbei ?? –

Antwort

1

haben Sie

versucht

String fileName = Environment.getExternalStorageDirectory().getAbsolutePath() + "/pass/" + file_name;

Als getAbsolutePath() kehrt der absolute Pfad zum Stammverzeichnis.

erhalten auch Protokollausgaben für die Strings Sie die Datei zu finden, verwenden und überprüfen, ob sie in beiden Fällen gleich sind

+0

Es funktioniert jetzt mit 'String fileName = Environment.getExternalStorageDirectory(). GetAbsolutePath() +"/pass/"+ Dateiname;' anstelle von 'String fileName = Environment.getExternalStorageDirectory() +"/pass/"+ Dateiname; ' – AliDeV

1

von Ihrem ersten Klasse (Aktivität) sind Sie auf diese Weise :::

Intent i = new Intent(thisActivity.this,NextActivity.class); 
i.putExtra("filename",fileName); 
startActivity(i); 
Verwandte Themen