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?
 

VfL_Freak

Top Contributor
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
 

VfL_Freak

Top Contributor
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:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Android Zugriff auf eine Datei, diese von einer anderen App erstellt wurde? Android & Cross-Platform Mobile Apps 11
M [Android] Wie erstellt man eine Verknüpfung eines Ordners? Android & Cross-Platform Mobile Apps 7
S Android Eclipse erstellt keine main Activity Android & Cross-Platform Mobile Apps 4
Fischkralle Android Nach Textdateien in Ordner suchen Android & Cross-Platform Mobile Apps 5
B Android Dateien senden von assets Ordner? Android & Cross-Platform Mobile Apps 7
U MediPlayer: Wave Dateien aus "Music"-Ordner abspielen Android & Cross-Platform Mobile Apps 3
S Android Geschossenes Foto in anderem Ordner speichern Android & Cross-Platform Mobile Apps 11
G Bilder in drawable Ordner Android & Cross-Platform Mobile Apps 11
G Datei im Ordner speichern Android & Cross-Platform Mobile Apps 2
R Android Dialog verstecken, statt zu schliessen Android & Cross-Platform Mobile Apps 7
N Android EditText: Numpad statt Tastatur einblenden Android & Cross-Platform Mobile Apps 2
G trotz Android 4.1 erscheint option menu statt action bar Android & Cross-Platform Mobile Apps 5
F MIDLET Pascal statt J2ME? Android & Cross-Platform Mobile Apps 6
J Android I9000 320x533 statt 480x 800 Android & Cross-Platform Mobile Apps 6
Bastifantasti Pixon 12: Games in 480x800 statt 240x400 Android & Cross-Platform Mobile Apps 17

Ähnliche Java Themen

Neue Themen


Oben