Android Eine Datei in Android löschen, aber wie ?

A

AndroidNutzer

Gast
Hallo Leute,
Meine folgende Frage hat eigentlich nichts mit Android zu tun. Ich poste es aber hier, da ich folgendes in eine Android App schreibe.

Und zwar möchte ich etwas sehr simples, einfach eine Datei löschen (die ICH erstellt habe).
Weil aber (fl ist die Datei):
Java:
fl.canWrite();
false ausgibt, habe ich nicht das recht die Datei zu löschen.

Also müsste ich die Rechte ändern, doch:
Java:
fl.setWritable(true);
geht nicht, da es keine Methode mehr gibt, die setWritable heisst.

Was kann ich tun um die Rechte zu ändern und somit die Datei zu löschen ?
 

schlingel

Gesperrter Benutzer
Gar nichts.

Wäre ja noch schöner wenn Apps Filesystem-Berechtigungen ändern können. Was ich mich allerdings frage: Wie hast du die Datei überhaupt speichern können?
 
A

AndroidNutzer

Gast
Hi und Danke für deine Antwort !

Es hat sich rausgestellt, dass ich den blöden Fehler gemacht habe und "fl" einen falschen Pfad übergeben hab. Somit konnte ja nix gelöscht werden. Keine Ahnung wieso ich erst jetzt drauf komme, war mir irgendwie sicher, dass der Pfad korrekt war.
Naja egal, DANKE nochmals.
 

dataframe

Mitglied
Jede App hat ihre eigene Sandbox in welcher wiederrum Dateien geschrieben und gelöscht werden können. Das nur am Rande, das Problem scheint ja gelöst.
 
Q

qwert_zuiopü

Gast
Hallo,

ich habe das selbe Problem, die Datei ist von meinem Programm erstellt, es kann diese aber nicht mehr löschen.

file.canWrite() liefert false

Woran kann das liegen?
 
Q

qwert_zuiopü

Gast
Sollte dann nicht deleteOnExit() funktionieren?

Ich habe einen Dialog erstellt, der eine Dateiauswahl vorsieht:
Java:
	       public void onClick(DialogInterface dialog, int which){
		  	     Intent intent = new Intent(FilechooserVerwalten.this, Verwalten.class);
			     intent.putExtra("file",mFileList[which]);
			     startActivity(intent);
	       }

und dann in der Klasse "Verwalten":

Java:
    	Bundle extras = getIntent().getExtras();
    	file = new File(extras.getString("file"));
        file.delete();
 
Q

qwert_zuiopü

Gast
meine Filechooser Klasse sieht im ganzen so aus:

Java:
public class FilechooserVerwalten extends Activity {
	private String[] mFileList;
	private File mPath;
	private static final String FTYPE = "";    
	private static final int DIALOG_LOAD_FILE = 1000;
	@Override
	public void onCreate(Bundle savedInstanceState) {
	     super.onCreate(savedInstanceState);
	     setContentView(R.layout.main);
	     
	     loadFileList();
	     Dialog dialog = onCreateDialog(DIALOG_LOAD_FILE);
	     dialog.show(); 

	}
	private void loadFileList(){
		mPath = getFilesDir();		
	  try{
	     mPath.mkdirs();
	  }
	  catch(SecurityException e){
	  }
	  if(mPath.exists()){
	     FilenameFilter filter = new FilenameFilter(){
	         public boolean accept(File dir, String filename){
	             File sel = new File(dir, filename);
	             return filename.contains(FTYPE) || sel.isDirectory();
	         }
	     };
	     mFileList = mPath.list(filter);
	  }
	  else{
	    mFileList= new String[0];
	  }
	}
	  protected Dialog onCreateDialog(int id){
	  Dialog dialog = null;
	  AlertDialog.Builder builder = new Builder(this);
	
	  switch(id){
	  case DIALOG_LOAD_FILE:
	   builder.setTitle("Bitte Strecke auswählen");
	   if(mFileList == null){
	     dialog = builder.create();
	     return dialog;
	   }
	     builder.setItems(mFileList, new DialogInterface.OnClickListener(){
	       public void onClick(DialogInterface dialog, int which){
		  	     Intent intent = new Intent(FilechooserVerwalten.this, Verwalten.class);
			     intent.putExtra("file",mFileList[which]);
			     startActivity(intent);
	       }
	      });
	  break;
	  }
	  dialog = builder.show();
	  return dialog;
	 }	
}

file.delete() geht nicht, weil schon file.exists() false liefert
Im logCat steht nichts dazu.
 
Q

qwert_zuiopü

Gast
So, hab eine Lösung :).

Wenn ich den gesamten Pfad
/data/data/name.paket/ + file.getString()
eingebe funktioniert es.

Funktioniert das so auch noch, wenn das Programm auf einem Smartphone gestartet wird oder kann es passieren, dass die Ordnerstruktur anders ist?
 

schlingel

Gesperrter Benutzer
Wer legt den die Daten an?

Wenn du das tust kannst du dir die Frage ja leicht selbst beantworten, wenn nicht: Was hast du überhaupt vor?
 
Q

qwert_zuiopü

Gast
Ok, ich erstelle die Dateien selbst.

Meine Frage zielte darauf ab, ob ein Gerät nicht vielleicht aus dem Pfad ein
/sd/data/data/name.paket/ + file.getString()
oder so macht.

Aber das scheint ja nicht der Fall zu sein.

Danke für eure freundliche Unterstützung :)
 
Q

qwert_zuiopü

Gast
So, jetzt muss ich doch noch mal fragen.
Mein Programm erstellt eine Datei auf dem Smartphone (interner Speicher). Wenn ich das Smartphone dann mit dem PC verbinde, kann ich die Datei allerdings nirgendwo finden (interner Speicher wird als Festplatte eingehängt). Eigentlich müsste ich doch auch von da aus Zugriff haben, oder?
 

schlingel

Gesperrter Benutzer
Nope, du hast nur auf die SD-Karte also den externen Speicher Zugriff wenn das Gerät als Festplatte eingehängt ist.

Probier mal die SD-Karte rauszunehmen und dann das Handy anzuhängen. Bei mir zuhause wird dann gar keine Festplatte mehr gemounted. (Win7)
 

schlingel

Gesperrter Benutzer
Hast du dein Phone gerooted oder verwendest du Linux? Normalerweise versteckt das Gerät nämlich den internen Speicher.

Unter Linux kannst du meines Wissens den Speicher direkt mounted, wie weiß ich allerdings nicht. Ich vermute, du hast eine Speicherkarte im Gerät - die meistens dabei ist - und browsed gerade in den falschen Verzeichnissen.

Wenn nicht, versteckt das System die privaten Daten der Apps.
 
Q

qwert_zuiopü

Gast
Ich verwende Linux. Das Gerät lässt mich beim Verbinden die Auswahl "Festplatte zur Verfügung stellen" auswählen. Es müsste also so sein, dass ein gewisser Teil nicht zur Verfügung gestellt wird, was eigentlich keinen Sinn macht.
 

schlingel

Gesperrter Benutzer
Es müsste also so sein, dass ein gewisser Teil nicht zur Verfügung gestellt wird, was eigentlich keinen Sinn macht.
Das macht sehr viel Sinn sogar, wenn du in der App die Daten als "private" kennzeichnest, wird so vom System sicher gestellt, dass die Daten tatsächlich private sind.

So nach dem Prinzip "Da könnt' ja jeder kommen" :)
 
Q

qwert_zuiopü

Gast
Ja, das stimmt :).

Hab jetzt die MODE_PRIVATE zu MODE_WORLD_WRITABLE geändert, leider auch keine Veränderung :(.
Allerdings kann ich im USB-DEBUG-Modus auf die Dateien einiger Programme zugreifen (auf den res-Ordner zum Beispiel).
 
Q

qwert_zuiopü

Gast
Hallo,

dann schreibe ich mal, was ich konkret machen will:
Ich habe ein Spiel geschrieben, deren Level-Dateien ich auch auf dem PC erstellt habe. Nun möchte ich, dass ich diese mit auf das Smartphone schreiben kann, sodass mein Programm diese laden kann. Diese Möglichkeit muss es einfach geben :).

Vielen Dank für Anregungen!
 

schlingel

Gesperrter Benutzer
Kann denn die App die Daten in den internal Storage schreiben? (Ist ja ziemlich egal ob's der PC kann, du musst in der App sowieso die Daten schreiben.)
 

schlingel

Gesperrter Benutzer
Wo ist dann das Problem?

Wenn du ein zentrales Repository entwickeln möchtest damit die Benutzer ihre Maps oder was auch immer hochladen können, muss das eh übers Netzwerk funktionieren.
 
Q

qwert_zuiopü

Gast
Ich weiß nicht, ob wir etwas aneinander vorbeireden, aber die Daten müssen wirklich der App mitgegeben werden.
Wenn ich also beispielsweise eine Quiz-App schreibe und die Fragen in ein Textdokument am PC schreibe, dann sollte die App auf dem Smartphone diese ja auch lesen können. Es ist nur eine einfache App, die auch nur auf meinem Smartphone laufen soll ;). Wenn ich dann neue Fragen schreibe, dann sollte ich diese einfach auf das Smartphone "rüberschieben" können ohne dass ich die App neu compilieren muss.
Ich hoffe, ich habe mein Problem verständlich dargestellt :).
 

schlingel

Gesperrter Benutzer
Wenn's eh nur für dich ist, würde ich die App einfach so schreiben, dass sie auf ein Verzeichnis zugreift auf dass du auch per USB-Plattenmodus Zugriff hast.

Aber ich würde da ehrlich gesagt nicht ewig herum probieren sondern einfach einen kleinen Service schreiben, der die neuen Files einfach rüber schiebt. Da es nur für dich sein muss ist das ja eh quick&dirty in 15min mit der Hilfe des Oracle TCP Beispielservers und Clients erledigt.

Das ist glaube ich schneller und einfacher als sich da auf die Tücken des Android-HDD Modus einzulassen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U [Android] Eine Datei aus Jar-Archiv laden Android & Cross-Platform Mobile Apps 4
T Android Ergebnis eines XML+XSLT "transform" in eine HTML - Datei schreiben (Android) Android & Cross-Platform Mobile Apps 2
J Android Zugriff auf eine Datei, diese von einer anderen App erstellt wurde? Android & Cross-Platform Mobile Apps 11
L SecurityException beim lesen/schreiben eine Datei Android & Cross-Platform Mobile Apps 7
L Android Wie erstelle ich eine dynamische Tabelle (TableLayout)? Android & Cross-Platform Mobile Apps 2
W Zur Laufzeit erstelltes MenuItem an eine View binden Android & Cross-Platform Mobile Apps 1
W Pixel Farbe in eine andere Farbe ändern im ImageView von ein Icon Android & Cross-Platform Mobile Apps 14
S Sinnvollste weg eine SQLite DB mit Android auslesen Android & Cross-Platform Mobile Apps 7
L Regelmäßig eine Methode im Hintergund ausführen Android & Cross-Platform Mobile Apps 1
J Android Wann ist eine App privat? Android & Cross-Platform Mobile Apps 10
M Android Schreiben von JsonDaten in eine SqliteDB Android & Cross-Platform Mobile Apps 7
M Suche eine Webseite mit dem aktuelle Datum in XML Android & Cross-Platform Mobile Apps 18
R Android Eine Website-frame in einer App Android & Cross-Platform Mobile Apps 4
Robat Android Wie mache ich eine App mit verschiedenen Leveln? Android & Cross-Platform Mobile Apps 8
M [Android] Wie erstellt man eine Verknüpfung eines Ordners? Android & Cross-Platform Mobile Apps 7
R [ANDROID] Dynamisch eine Liste erweitern Android & Cross-Platform Mobile Apps 3
K Verständisfrage bzgl. Buttons und ihnen eine Funktion geben. Android & Cross-Platform Mobile Apps 3
X Android Wo gibts eine SortableListView? Android & Cross-Platform Mobile Apps 6
G eine Methode einer anderen Activity aufrufen Android & Cross-Platform Mobile Apps 9
S Android In Service überprüfen ob eine Activity gebunden ist? Android & Cross-Platform Mobile Apps 6
B TableLayout verhält sich nicht wie eine Tabelle Android & Cross-Platform Mobile Apps 3
L Android Eine Kleinigkeit für Profis Android & Cross-Platform Mobile Apps 2
A Koordinaten eine Images feststellen Android & Cross-Platform Mobile Apps 9
N Gibt es eine opensource Speech-to-Text engine? Android & Cross-Platform Mobile Apps 3
B Android Eine Warnung in der Console (Eclipse) auswerten Android & Cross-Platform Mobile Apps 3
M Eclipse: cdc.jar in eine Midlet Suite integrieren Android & Cross-Platform Mobile Apps 18
H Gibt es eine Alternative zur Location API? Android & Cross-Platform Mobile Apps 4
F Wie komplex wäre eine Wecker-Applikation? Android & Cross-Platform Mobile Apps 5
I Foto mit einer bestimmten Auflösung aufnehmen und als Datei ablegen. Android & Cross-Platform Mobile Apps 5
I Android CameraApp, eingebaute App nutzen und Ergebniss als Datei speichern Android & Cross-Platform Mobile Apps 0
R Android Audio-Datei fliessend vorspulen Android & Cross-Platform Mobile Apps 9
T Screenshot speichern ohne alte Datei überschreiben Android & Cross-Platform Mobile Apps 3
R Audio-Datei abspielen Android & Cross-Platform Mobile Apps 3
L Android content URI Datei einlesen Android & Cross-Platform Mobile Apps 9
S Android Datei aus dem Netz einlesen Android & Cross-Platform Mobile Apps 6
V Android Wird mein Vorhaben funktionieren? (Apk Datei decompilieren, bearbeiten, compilieren) Android & Cross-Platform Mobile Apps 2
L Android Datei Übertragung im Netzwerk Android & Cross-Platform Mobile Apps 8
S Termin aus *.txt Datei in Google Kalender eintragen? Android & Cross-Platform Mobile Apps 1
S *.APK Datei automatisch installieren? Android & Cross-Platform Mobile Apps 4
JavaWolf165 Android Fehler beim Speichern/Downloaden einer Datei Android & Cross-Platform Mobile Apps 2
B Android XML Datei editieren --> Permission denied Android & Cross-Platform Mobile Apps 2
M Android Speichern einer .txt Datei im InternalStorage Android & Cross-Platform Mobile Apps 2
B Android Absolute kml-Datei erzeugen Android & Cross-Platform Mobile Apps 2
B Fragen zum Speichern einer Datei auf dem Gerät? Android & Cross-Platform Mobile Apps 7
S Listview Einträge aus "xml" Datei Android & Cross-Platform Mobile Apps 1
G Datei erstellen Android & Cross-Platform Mobile Apps 10
L Android Apache POI: Datei speichern geht nicht Android & Cross-Platform Mobile Apps 1
A Android Datei erstellen/schreiben/auslesen Android & Cross-Platform Mobile Apps 1
K Android Erstellt Ordner statt Datei. Android & Cross-Platform Mobile Apps 3
M Datei verschicken per byteArray? Android & Cross-Platform Mobile Apps 1
L Android Datei erstellen, Daten einspeichern und auslesen Android & Cross-Platform Mobile Apps 2
B Datei downloaden über DialogBox? Android & Cross-Platform Mobile Apps 4
G Datei im Ordner speichern Android & Cross-Platform Mobile Apps 2
G Datei erzeugen, per E-Mail senden Android & Cross-Platform Mobile Apps 5
D Android WAV-Datei abspielen / Klangfolge(Endlos) Android & Cross-Platform Mobile Apps 4
D gpx-Datei von Smartphone auf Server uploaden Android & Cross-Platform Mobile Apps 4
E Java ME Suche aufgenommene Datei Android & Cross-Platform Mobile Apps 4
K mp3 datei in j2me abspielen Android & Cross-Platform Mobile Apps 16
M Text in txt-Datei schreiben und nach ABC sortieren? Android & Cross-Platform Mobile Apps 2
R String wie WAV Datei nutzen Android & Cross-Platform Mobile Apps 4
A jad-Datei to N95 Android & Cross-Platform Mobile Apps 18
C 2 kleine Probleme (Datei lesen, String durchsuchen) Android & Cross-Platform Mobile Apps 16
G WAV datei abspielen aber wohin kopieren ? Android & Cross-Platform Mobile Apps 2
S Variable Anzahl von Bytes aus einer Datei lesen Android & Cross-Platform Mobile Apps 2
J Benachrichtigung Freigabe ab Android 14 Android & Cross-Platform Mobile Apps 1
J Android Benachrichtigung zum Zeitpunkt ers Android & Cross-Platform Mobile Apps 15
J Das Beispiel von Android erzeugt Fehler Android & Cross-Platform Mobile Apps 8
J Zeitdifferenzen unter Android 7 (API < 26) berechnen Android & Cross-Platform Mobile Apps 4
W Netzwerk Verbindungen Java Android Android & Cross-Platform Mobile Apps 107
Z Android IntelliJ Android & Cross-Platform Mobile Apps 2
M Repository bei Room-Database in Android Studio (Java) Android & Cross-Platform Mobile Apps 2
Android App auf das eigene Handy bekommen Android & Cross-Platform Mobile Apps 3
Alex IV Android App erstellen Android & Cross-Platform Mobile Apps 3
OnDemand CrossPlatform Kotlin iOs/Android Datenverbrauch Android & Cross-Platform Mobile Apps 2
W In Android Studio Integer an andere activities übergeben Android & Cross-Platform Mobile Apps 2
wladp Android Studio Room Database Android & Cross-Platform Mobile Apps 1
N "Schöne" Datatable in Android und setzen von Parametern von Textview im Code Android & Cross-Platform Mobile Apps 5
N Android game programmieren Android & Cross-Platform Mobile Apps 5
T Android Studio: Einen Button in einer For Schleife verwenden Android & Cross-Platform Mobile Apps 2
K BLE Komunikation mit Android studio und esp32 Android & Cross-Platform Mobile Apps 5
G Android UDP Kommunikation Android & Cross-Platform Mobile Apps 1
M Paper DB wird in Android Studio nicht erkannt Android & Cross-Platform Mobile Apps 7
J Android zugrif auf Thread nach Handy drehen. Android & Cross-Platform Mobile Apps 10
T Android Android Augmented Faces in Java. Neue Landmarks erstellen Android & Cross-Platform Mobile Apps 1
K Android Android In-App-Purchase lädt nicht Android & Cross-Platform Mobile Apps 0
Besset Android http request an interne ip adresse funktioniert nicht Android & Cross-Platform Mobile Apps 8
J Is Android Development Head First Outdated? Android & Cross-Platform Mobile Apps 3
J Android Android Datenbankverbindung zum Raspberry Pi Android & Cross-Platform Mobile Apps 1
lolcore Android Studio -Download Documentation for Android SDK Android & Cross-Platform Mobile Apps 0
W Problem mit Android Studio Android & Cross-Platform Mobile Apps 0
W App Abo Android Android & Cross-Platform Mobile Apps 10
OSchriever Android Android MediaPlayer bei Anruf stoppen/pausieren Android & Cross-Platform Mobile Apps 2
OSchriever Auf onClick-Listener reagieren und Parameter übergeben (Android Studio) Android & Cross-Platform Mobile Apps 4
W removeNetwork Android App mit Spendenaktion fürs Tierheim! Android & Cross-Platform Mobile Apps 1
T Android R.string.test+i Problem Android & Cross-Platform Mobile Apps 2
P undefinierbarer Fehler Android Android & Cross-Platform Mobile Apps 8
T Android ArrayList sortieren mit 2 Werten ohne thencomparing , Wie? Android & Cross-Platform Mobile Apps 10
W Variable überschreiben (Android Studio) Android & Cross-Platform Mobile Apps 2
ruutaiokwu Android Selbst entwickelter SMTP-Client läuft auf PC, nicht aber auf Android Android & Cross-Platform Mobile Apps 9
ruutaiokwu Android Warum muss man bei Android Studio immer 2x auf "Run" klicken damit die App auf dem Gerät startet Android & Cross-Platform Mobile Apps 8

Ähnliche Java Themen

Neue Themen


Oben