Android Studio am Mac / relative path problem

Railwanderer

Railwanderer

Ambitioniertes Mitglied
11
hallo :)

ich nutze android studio auf meinem mac
und komme eigendlich ganz gut zurecht.

nun moechte ich allerdings einen 2d int array
(Von einer tilemap) aus einer datei vom desktop laden.

diese muss/soll extern des projekts gelagert sein ,
da ich auch einen reinen java mapeditor programmiert
habe der eben diese datei fuellen soll.

mein problem: ich kann relative paths unter android studio
nicht nutzen.

sprich unter mac waere mein
homeordner normalerweise unter dem path:
"~/"
mein desktop dann unter
"~/Desktop"
dieser path wird mir auch im terminal angezeigt.
dummerweise findet android studio weder den path
noch das directory

ein simpler test mit file.isDirectory liefert false.

wie kann ich darauf zugreifen? einmal von app seite aus (laden)
und einmal von einer java appikation aus(speichern)
( dazu habe ich in android studio ein neues java modul angelegt).
in diesem befindet sich ein ordner lib und unter run settings
habe ich applikation gewaehlt um es als reines java programm zu starten.

ich mag es nicht zwei ide fuer android und java zu benutzen und wuerde es
gerne daher alles in android studio bewerkstelligen.


ich will die datei auf dem desktop speichern da ich mich mit in und out streams
noch besser befassen muss um es voll zu erstehen.
so koennte ich gleich sehen was angelegt, wie geschrieben u wie gelesen wird ;)

ich hoffe es ist klar was ich meine, bin gerade im zug aber kann bei bedarf noch
einen screenshot anhaengen, um zu zeigen das der path definitif so stimmt.

errors gibt android studio nicht aus. nur beim test mit somefilename.exists oder
somefilename.isDirectory (fuer ~/Deskrop) liefert es false
 
Zuletzt bearbeitet:
Ich glaube sowas unterstützt Java io nicht also diese Bezeichnung ist ja eher Linux Unix spezifisch und Java ist ja nicht so angelegt


Vielleicht klappt es so:

PHP:
String userHomeFolder = System.getProperty("user.home");
File file = new File(userHomeFolder, "myfile.virus");


Der ursprüngliche Beitrag von 04:33 Uhr wurde um 04:35 Uhr ergänzt:

Und dann halt noch den Desktop ansteuern vllt einfach an den string noch ranhängen
 
Was wäre mit symbolischen Links?
Dann kannst du die Datei auf dem Desktop lassen, und einen Link in deinem Projektordner haben.
Stichwort: ln -ls
 
Und wenn du den vollständigen Pfad angibst? ~ ist ja auch nur eine Kurzschreibweise für /Users/[NutzerName] (MacOS, soweit ich weiß) oder /home/[NutzerName] (die meisten Linux-Distributionen)
 
  • Danke
Reaktionen: Railwanderer
Thyrion schrieb:
Und wenn du den vollständigen Pfad angibst? ~ ist ja auch nur eine Kurzschreibweise für /Users/[NutzerName] (MacOS, soweit ich weiß) oder /home/[NutzerName] (die meisten Linux-Distributionen)

top! Hat geklappt, anscheinende erkennt AndroidStudio
wirklich einfach das Tide Symbol nicht oder verlinkt es falsch.

die anderen tipps probiere ich heute aus :) hatte leider zwischen
aufstehen und zur arbeit gehen nur 20 min :D

Kardroid wie ist das mit den links gemeint? Ich kenne meine Ide
leider noch nicht so gut und beschraenke terminal befehle noch
auf ein minimum weil ich nicht weiss wo ich da anfangen soll zu lernen
bzw gerade voll ausgelastet bin einen guten einstieg in
java / android zu starten :sad:
 
hey wenn du schon probierst dann versuch mal das hier bitte

PHP:
        String userHomeFolder = System.getProperty("user.home")
                               +(System.getProperty("os.name").contains("win")?"\\":"/")
                               +"Desktop";
		File file=new File(userHomeFolder,"myFile.txt");
		BufferedWriter writer=null;
		try
		{
			writer =new BufferedWriter(new FileWriter(file,true));
			writer.write("Hello world!");
		}
		catch(Exception e)
		{}
		finally
		{
			try 
            {
                 writer.close();
	        } 
            catch (Exception e) 
            {}
        }

hat bei mir win 7 geklappt frag mich ob es auf linux bzw. mac os x auch klappt
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Railwanderer
Wird gleich heute abend gemacht :) bin allerdings erst gegen 1 zuhause
ich berichte dann gegen 2 uhr heut nacht ;)

Und wenn nun meine map datei iwann fertig ist, muss ich sie wieder ins
app bundle machen damit sie beim nechsten user auch gefunden wird oder?
 
Jaiel schrieb:
hey wenn du schon probierst dann versuch mal das hier bitte

PHP:
        String userHomeFolder = System.getProperty("user.home")
                               +(System.getProperty("os.name").contains("win")?"\\":"/")
                               +"Desktop";
		File file=new File(userHomeFolder,"myFile.txt");
		BufferedWriter writer=null;
		try
		{
			writer =new BufferedWriter(new FileWriter(file,true));
			writer.write("Hello world!");
		}
		catch(Exception e)
		{}
		finally
		{
			try 
            {
                 writer.close();
	        } 
            catch (Exception e) 
            {}
        }

hat bei mir win 7 geklappt frag mich ob es auf linux bzw. mac os x auch klappt

Funktioniert 1 a :) zumindest in der Java Applikation unter Android Studio.
Mir ist aufgefallen wenn ich eine txt Datei erstelle und sagen wir zwei Zeilen
reinschreibe, und danach den code ändere dass er nur noch eine Zeile reinschreibt,
dass die zuvor geschriebene zweite Zeile gelöscht wird. Wie kommt das?
an sich praktisch, aber wie vermeidet man das? :)

hm kurz überlegen hilft wohl :D vll einfach schauen ob die Datei Inhalt beinhaltet,
und wenn ja dahinter anfangen zu schreiben.. jaja manchmal denkt man alles wurde
schon für einen gemacht, aber vll ganz gut dass es nicht so ist! :)
 
Zuletzt bearbeitet:

Ähnliche Themen

5
Antworten
0
Aufrufe
1.142
586920
5
SaniMatthias
Antworten
19
Aufrufe
942
swa00
swa00
D
Antworten
23
Aufrufe
2.513
Data2006
D
Zurück
Oben Unten