Filepaths/ Files funktionieren nicht.

  • 2 Antworten
  • Letztes Antwortdatum
D

DerChauvinist

Neues Mitglied
0
Guten Tag,

ich habe ein Problem mit meiner App, um spezifischer zu sein mit dem Erstellen einer File.
Das Problem ist, dass sie zwar erstellt wird, so zumindest die Console, aber beim Zugriff sagt sie die file würde nicht existieren. Also versuchte ich erst die directory zu erstellen und danach die file selbst. Nun sagt die Console mir es wäre nicht mal ein path angegeben.

(java.IOException: open failed: ENOENT (no such file or directory : ))

So ich bin am verzweifeln.

Hier noch einmal die Quellcodes :

//directory

final File parent = new File("Dir/Items/");
if (!parent.mkdirs())
{
Log.d("Debug", "Error - Could not create the directories !");
}
itemFilePath = parent.getPath();



//file
public static void addItem(String itemName, String itemDescription) throws FileNotFoundException
{
int freeFile = countExistingFiles() + 1;

File file = new File(itemFilePath, (itemT + freeFile + txt));

try
{
file.createNewFile();
}
catch (IOException e1)
{
e1.printStackTrace();
}

FileOutputStream fos = new FileOutputStream(file);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));

String[] convertBack = new String[2];
convertBack[0] = itemName;
convertBack[1] = itemDescription;


try
{
for (int i = 0; i < 2; i++) {

bw.write(convertBack);
bw.newLine();
}
if (bw != null) {
try {
bw.close();
} catch (IOException e) {
Log.d("Debug", "Error - " + e.getMessage());
throw e;
}
}
}
catch(IOException e2)
{
e2.printStackTrace();
}
}


!!Mir ist bewusst das man es noch viel sauberer hätte schreiben können, doch es geht mir erst noch um die Funktionalität!!

Grüße Nic
 
Mein schreibt code nicht am Ende schön, sondern am Anfang, damit andere (und du selbst dir) besser helfen können.

Wo ist der Stacktrace? (da steht, welcher Dateibefehl den Fehler auslöst)

Was meinst du mit Console? (sowas hat man unter Android erstmal nicht).

Aber new File("Dir/Items") sieht schonmal ziemlich falsch aus. Relativ zu welchem Verzeichnis soll das sein? Die (virtuelle oder reale) SD-Karte? Du musst dann erstmal deren Pfad mit getExternalStorageDir() abholen - und in der Manifest das Lese/Schreibrecht auf selbige anmelden.
 
Danke für deine schnelle Antwort !

Das ich den code noch jemandem zeigen müsste, hätte ich als ich ihn schrieb nicht gedacht.

So das mit dem StackTrace ist mir auch jetzt erst aufgefallen. Habe ich gerade behoben.

Mit der Console meine ich die mit Android mitgelieferte LogCat.

So und zu guter Letzt die SD-Karte. Ich habe auch die Methode getExternalStorageDir() schon verwendet, doch es machte kein Unterschied. Der Path blieb leer.
Ich werde es aber wieder einbauen. Das was ich zur directory schrieb war auch nur ein Test.

Grüße Nic
 
Zurück
Oben Unten