Android Erstellt Ordner statt Datei.

KoffeinJunky

Neues Mitglied
Hallo das ist mein erstes Thema in dem Forum.
Lange Geschichte vorweg.
Ich bin an sich in einer anderen Sprache zuhause, aber Java habe ich immer wiedermal für kleine Projekte genutzt, fast nichts davon waren Real World Projekte.
Jetzt habe ich die Betreuung einer Android App übernommen. Ich bin da schon etwas eingearbeitet und konnte diverse Fehler fixen.

Nun scheitere ich an einer super einfachen Sache. Ich will System.out zum loggen benutzen und es in eine Datei umbiegen. Aber ich bekomme die Datei nicht erstellt.
Java:
public String createLogFile(String filename)
	{
		try
		{
			File aFile = new File(filename);			
			File aFolder = aFile.getParentFile();
			
			if (!aFolder.exists())
			{
				aFolder.mkdirs();				
			}
			
			
			if(!aFile.exists() ) 
			{				
				aFile.createNewFile();
			}
			
			return filename;
		}catch(Exception e){
			return null;
		}				
	}

Warum erzeugt das einen Ordner?
 
Moin,

was übergibst Du konkret mit "filename" ?
Pfad UND Dateiname?

Hier mal mein Ansatz:
Java:
String sAktFile = sPfad + sFilename;

File fDir = new File( sPfad );
// falls angegebenes DIR nicht ex. --> erstellen 
if ( !fDir.exists() ) 
{
	// "mkdirs" erzeugt auch alle Unterverzeichnisse!!
	fDir.mkdirs();
} 

// Datei speichern
File fPrtFile = new File( sAktFile );
BufferedWriter f;
try 
{
	f = new BufferedWriter( new FileWriter(fPrtFile) );
	f.write( sData ); // der Dateiinhalt !!
	f.close();
} 
catch ( IOException e ) 
{
	e.printStackTrace();
	sAktFile = "";
}

Gruß
Klaus
 
Moin,

Exakt das!
Sag nicht das sei falsch.
Gute Frage 😉

Allerdings habe ich "getParentFile" noch nie verwendet und bin mir gerade nicht ganz sicher, was die Funktion GENAU macht rsp. zurückliefert (ok, ein Fileobjekt ... aber welches?)

Wird denn "createNewFile" überhaupt aufgerufen?
Wenn JA, mit welchem Rückgabewert?

"mkDirs" und "createNewFile" liefern beide eine bool'schen Wert zurück!
Überprüf' die mal !

Gruß
Klaus

EDIT:
So, habe es mal schnell bei mir mit diesen Schnipsel getestet:
Java:
String filename = "D:\\Eigene Dateien\\XYZ\\test.txt";
try
{
	File aFile = new File(filename);           
	File aFolder = aFile.getParentFile();
	if (!aFolder.exists())
	{
            boolean bIsOK = aFolder.mkdirs();
	}
	if( !aFile.exists() )
	{              
            boolean bIsOK = aFile.createNewFile();
	}
}
catch(Exception e)
{
	System.out.println( "Fehler !!!" );
}
Die Datei wurde dabei erfolgreich angelegt (ist aber natürlich leer!!)
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben