Verknüpfung eines Ordners erstellen

N

Nexus5Fan

Neues Mitglied
0
Hallo,

ich bin gerade dabei eine App zu schreiben, die Fotos auf die externe SD-Karte verschiebt. Da ich ja seit Android 4.4 keine vollständigen Schreibrechte mehr auf die externe SD-Karte besitze, hatte ich mir überlegt, das Problem mithilfe einer Verknüpfung zu lösen:
Ich würde auf der externen SD-Karte folgenden Ordner erstellen und die Bilder dann dorthin verschieben: "/storage/external_sd/Android/data/PACKAGE_NAME"
Da die Bilder aber in diesem Ordner von z.B. der Galerie-App nicht erkannt werden, wollte ich eine Verknüfung des Ordners "PACKAGE_NAME" erstellen und diese dann im internen Speicher im Ordner "DCIM" ablegen, damit die Bilder erkannt werden.
Wie erstelle ich aber eine Verknüpfung des Ordners "PACKAGE_NAME" ?
Im Internet habe ich dazu leider nichts gefunden.

mfg
 
Hallo,

wenn du die Berechtigungen setzt, sollte das mit den Schreibrechten (gerade) auf der externen SD keine Probleme geben - ich konnte jedenfalls bei mir keine erkennen.

Sinnvoll ist, wenn du über relative Pfade den/die Speicherort(e) angibst.

Code:
private final static String EXTERNAL_STORAGE_DIR = Environment.getExternalStorageDirectory().toString();

und Files kann man so (oder so ähnlich anlegen):
Code:
File myFile = new File(EXTERNAL_STORAGE_DIR + "/Download/myMrZipperMedia.zip");
        // wenn File noch nicht vorhanden -> erstellen
        if (!myFile.exists()) {
            File file = new File(EXTERNAL_STORAGE_DIR + "/Download/myMrZipperMedia.zip");
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

zu den Berechtigungen:
Code:
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Kann kaum glauben, dass du im Netz dazu wenig gefunden hast. :laugh:
 
ui_3k1 schrieb:
Hallo,

wenn du die Berechtigungen setzt, sollte das mit den Schreibrechten (gerade) auf der externen SD keine Probleme geben - ich konnte jedenfalls bei mir keine erkennen.

Sinnvoll ist, wenn du über relative Pfade den/die Speicherort(e) angibst.

Code:
private final static String EXTERNAL_STORAGE_DIR = Environment.getExternalStorageDirectory().toString();

und Files kann man so (oder so ähnlich anlegen):
Code:
File myFile = new File(EXTERNAL_STORAGE_DIR + "/Download/myMrZipperMedia.zip");
        // wenn File noch nicht vorhanden -> erstellen
        if (!myFile.exists()) {
            File file = new File(EXTERNAL_STORAGE_DIR + "/Download/myMrZipperMedia.zip");
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

zu den Berechtigungen:
Code:
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

Kann kaum glauben, dass du im Netz dazu wenig gefunden hast. :laugh:


Heißt das jetzt ist kann mit der WRITE_EXTERNAL_STORAGE - Berechtigung immer noch vollständig auf die externe SD-Karte und somit auch auf den Ordner DCIM der externen SD-Karte zugreifen?
Im Internet findet man viele Probleme dazu seit Android 4.4.
Hier wird auch beschrieben, dass es seit Android 4.4 nicht mehr möglich ist komplett auf die externe SD-Karte zuzugreifen.

Ich habe leider kein Handy mit Android 4.4 und einer externen SD-Karte, weshalb ich es leider nicht selber ausprobieren kann.
 
Ja, das heißt das.

Seit Android 4.4 geht es nur noch über den Weg, den ui_3k1 beschreibt.

Der andere Weg, den die meisten Entwickler aus Faulheit benutzten, funktioniert so nicht mehr. Die haben nur eine Lücke geschlossen. Siehe auch in der Doku.

Android 4.4 APIs | Android Developers
 
Was hier geschrieben wird ist einfach falsch. Ihr versteht entweder die Frage falsch oder kennt das Speichermodell von Android nicht gut genug.

Nur weil eine Methode getExternalStorageDirectory() heisst, bedeutet das noch lange nicht, dass damit die externe SD-Karte gemeint ist. Im Gegenteil, heutzutage ist es fast immer so, dass der normale "externe" Speicher nur ein Teil des internen Speichers ist. Das ist nötig für alle Geräte, die keinen sekundären Speicher haben.

Genau das Wort sekundär ist hier das entscheidende Stichwort. Android unterscheidet zwischen primärem und sekundärem Speicher. Beim primären Speicher handelt es sich um den eingebauten Speicher des Geräts. Alles andere ist sekundärer Speicher. Eine einschiebbare SD-Karte ist demzufolge auch sekundärer Speicher.

Vor Android 4.4 gab es auch schon eine Einschränkung, auf eine externe SD-Karte zu schreiben. Nur haben damals viele Hersteller trotzdem eine Möglichkeit eingebaut.

Mit Android 4.4 hat Google einige Dinge geändert. Kurz zusammengefasst:

Nur das Package-spezifische Verzeichnis ist auf sekundärem Speicher beschreibbar. Ausserdem wird das Verzeichnis automatisch gelöscht, sobald die App deinstalliert wird.

Siehe dazu auch:
The WRITE_EXTERNAL_STORAGE permission must only grant write access to the primary external storage on a device. Apps must not be allowed to write to secondary external storage devices, except in their package-specific directories as allowed by synthesized permissions. Restricting writes in this way ensures the system can clean up files when applications are uninstalled.

[...]

Secondary external storage must not be writable by apps, except in package-specific directories as allowed by synthesized permissions.

Quelle

Man kann also nur auf den externen Teil des primären Speichers beliebig schreiben (mit der Berechtigung WRITE_EXTERNAL_STORAGE).

Detailierte Infos und eine sehr gute Beschreibung gibts bei Android Police.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: amfa
Zoopa schrieb:
Was hier geschrieben wird ist einfach falsch. Ihr versteht entweder die Frage falsch oder kennt das Speichermodell von Android nicht gut genug.

Nur weil eine Methode getExternalStorageDirectory() heisst, bedeutet das noch lange nicht, dass damit die externe SD-Karte gemeint ist. Im Gegenteil, heutzutage ist es fast immer so, dass der normale "externe" Speicher nur ein Teil des internen Speichers ist. Das ist nötig für alle Geräte, die keinen sekundären Speicher haben.

Genau das Wort sekundär ist hier das entscheidende Stichwort. Android unterscheidet zwischen primärem und sekundärem Speicher. Beim primären Speicher handelt es sich um den eingebauten Speicher des Geräts. Alles andere ist sekundärer Speicher. Eine einschiebbare SD-Karte ist demzufolge auch sekundärer Speicher.

Vor Android 4.4 gab es auch schon eine Einschränkung, auf eine externe SD-Karte zu schreiben. Nur haben damals viele Hersteller trotzdem eine Möglichkeit eingebaut.

Mit Android 4.4 hat Google einige Dinge geändert. Kurz zusammengefasst:

Nur das Package-spezifische Verzeichnis ist auf sekundärem Speicher beschreibbar. Ausserdem wird das Verzeichnis automatisch gelöscht, sobald die App deinstalliert wird.

Siehe dazu auch:


Man kann also nur auf den externen Teil des primären Speichers beliebig schreiben (mit der Berechtigung WRITE_EXTERNAL_STORAGE).

Detailierte Infos und eine sehr gute Beschreibung gibts bei Android Police.

Danke für den Beitrag. Also habe ich jetzt immer noch dasselbe Problem wie vorher, nämlich, dass die Bilder in meinem Ordner z.B. von der Galerie-App nicht erkannt werden.

Gibt es denn irgendeine Möglichkeit, die Bilder eventuell irgendwie der Galerie-App hinzuzufügen, also dass sie auch aus meinem Ordner ("/storage/external_sd/Android/data/PACKAGE_NAME") erkannt werden?
 
Zoopa schrieb:
Was hier geschrieben wird ist einfach <u>falsch</u>. Ihr versteht entweder die Frage falsch oder kennt das Speichermodell von Android nicht gut genug.<br />
<br />

@Zoopa
Danke. Nur leider sieht es Google es anders als du. ;)
Laut Google kann der "external storage" auf einen "removable storage media (such as an SD card)" als auch auf den "internal (non-removable) storage" befinden. Kombinationen sind auch Möglich. Wechselmedien befinden sich fast immer im "external storage".
http://developer.android.com/guide/topics/data/data-storage.html#filesExternal

Die Trennung zwischen external und internal ist nicht so strikt, wie du denkst. Mal wieder ein Fall von extrem unglücklichen Bezeichnungen. Das ganze ist ein Mischmasch zwischen Berechtigungen und Verzeichnisstrukturen.
Primärspeicher ist normalerweise der Hauptspeicher(RAM). Sekundärspeicher sind dann alle Speichermedien, auch eingebaute, wie der ROM.

Wenn man Probleme mit den Innenleben von Android hat, hilft es sich an Linux zu orientieren (Das Teil hat ja auch ein Linux-Kernel).

@Nexus5Fan
Wie man sinnvoll auf den "external storage" Daten schreibt, steht in den obigen Link.

@Zoopa
Leider vergisst Google schon mal wichtige Änderungen anzukündigen. Ab Android 4.4 haben die Berechtigungen für den Schreib- und Lesevorgänge geändert. Nur es stand in keiner Doku, was zu viel Wirrungen führte (siehe dein Link). Die Doku hat Google dann erst, wie üblich, später nachgeschoben.
 
Kurze Frage... Ich lese mal "external storage DEVICES" und dann von "CARDS" - geht hier Google vielleicht von einem anderen Speichermedium aus, als einer SD Karte? Ggf wäre so ein Device ein USB Stick..
Wie gesagt, bei mir funktionierte alles reibungslos - allerdings ist mein Gerät gerootet. Aber das wird ja wahrscheinlich nicht den den Unterschied machen, oder? Ich habe ja keine root permissions für meine app hinterlegt.
 
Ich sage dazu nur Linux. Das ist nur bei Android meistens eine SD-Card. Bei mir funktioniert es auch. Beide Methoden.
 
Nexus5Fan schrieb:
Gibt es denn irgendeine Möglichkeit, die Bilder eventuell irgendwie der Galerie-App hinzuzufügen, also dass sie auch aus meinem Ordner ("/storage/external_sd/Android/data/PACKAGE_NAME") erkannt werden?

Ich glaube nicht. Apps dürfen zwar alle Public-Verzeichnisse der physischen SD-Karte weiterhin lesen, aber dein Package-Ordner ist ein privates Verzeichnis, deshalb findet die Galerie wohl nichts. Geht es dir denn um den Speicherplatz, dass du die physische SD-Karte benutzen willst? Der von Google vorgesehene Weg ist die Variante von ui_3k1, also die externe Partition des internen Speichers zu benutzen (nennen wir es mal "virtuelle SD-Karte").

Du kannst natürlich von PC aus Verzeichnisse auf dieser SD-Karte erzeugen und darin Bilder ablegen, diese können von der Galerie dann auch gefunden werden (solange der Ordner nicht ein Package-Name einer App ist). Nur programmatisch kannst du nicht draufschreiben.

markus.tullius schrieb:
Laut Google kann der "external storage" auf einen "removable storage media (such as an SD card)" als auch auf den "internal (non-removable) storage" befinden. Kombinationen sind auch Möglich. Wechselmedien befinden sich fast immer im "external storage".
Storage Options | Android Developers

ja das ist mir schon bewusst. Aber ich sehe gerade, dass ich das wirklich etwas ungünstig formuliert habe. Danke für den Hinweis :winki: Die SD-Karte kann natürlich der externe Speicher sein, aber sie muss nicht zwingend.

(Mein altes Galaxy Ace meckert z.B., wenn ich die Kamera-App starte und keine SD-Karte eingelegt ist. Die App prüft, ob der externe Speicherbereich verfügbar ist, was es in dem Fall aber nicht ist. In diesem Fall ist die SD-Karte also tatsächlich der external storage.)

Das Problem von Nexus5Fan tritt aber auf, weil beides zutrifft. Also er hat sowohl einen externen Speicherbereich im internen Speicher ("virtuelle SD-Karte", finde gerade keinen besseren Namen dafür) als auch eine physische SD-Karte. Und in diesem Fall wird die physische SD-Karte nicht gleich behandelt wie die "virtuelle SD-Karte".

Um das in den (Original-) Begriffen aus der Google-Doku besser zu erklären:

  1. Nexus5Fan hat ein Gerät mit eingebautem Speicher (internal (non-removable) storage) und einer einsetzbaren SD-Karte (removable storage media such as an SD card).
  2. Als external storage ist ein Teil des eingebauten Speichers (internal (non-removable) storage) reserviert, obwohl auch eine physische SD-Karte vorhanden sein kann.

Punkt 2 ist das Entscheidende. Alles, was man mit der Permission WRITE_EXTERNAL_STORAGE anstellen kann und auch schon früher konnte, betrifft den im Gerät eingebauten Speicher (bzw. einen Teil davon). Zusätzlich hat er noch eine physische SD-Karte. Selbst mit WRITE_EXTERNAL_STORAGE kannst du da seit Android 4.4 nicht drauf schreiben. (Ausser im privaten Package-Ordner).

markus.tullius schrieb:
Die Trennung zwischen external und internal ist nicht so strikt, wie du denkst. Mal wieder ein Fall von extrem unglücklichen Bezeichnungen.
Hö, wieso sollte ich denken, dass der Name aussagekräftig ist? :winki: Ich habe ja extra geschrieben, dass die Methode getExternalStorageDirectory() nicht wirklich "extern" (im Sinne von herausnehmbar) bedeuten muss.

ui_3k1 schrieb:
Wie gesagt, bei mir funktionierte alles reibungslos - allerdings ist mein Gerät gerootet. Aber das wird ja wahrscheinlich nicht den den Unterschied machen, oder? Ich habe ja keine root permissions für meine app hinterlegt.

Meinst du denn auch wirklich dasselbe? Ich habe z.B. noch ein Galaxy Nexus (also ohne SD-Card-Slot). Im Dateimanager habe ich ein Verzeichnis /storage/sdcard0, da können Apps natürlich problemlos Daten ablegen. Ist aber nicht diese "SD-Karte" gemeint, sondern wirklich eine physische zum einschieben. Ansonsten könnte es natürlich schon sein, dass deine ROM das vielleicht schon eingebaut hat.
 
Zuletzt bearbeitet:
Zoopa schrieb:
Ich glaube nicht. Apps dürfen zwar alle Public-Verzeichnisse der physischen SD-Karte weiterhin lesen, aber dein Package-Ordner ist ein privates Verzeichnis, deshalb findet die Galerie wohl nichts. Geht es dir denn um den Speicherplatz, dass du die physische SD-Karte benutzen willst? Der von Google vorgesehene Weg ist die Variante von ui_3k1, also die externe Partition des internen Speichers zu benutzen (nennen wir es mal "virtuelle SD-Karte").

Du kannst natürlich von PC aus Verzeichnisse auf dieser SD-Karte erzeugen und darin Bilder ablegen, diese können von der Galerie dann auch gefunden werden (solange der Ordner nicht ein Package-Name einer App ist). Nur programmatisch kannst du nicht draufschreiben.


Leider geht es mir um den Speicherplatz. Meine App soll die Medien auf die externe SD-Karte verschieben, um Speicherplatz zu sparen. Android 4.4 hat mir da anscheinend einen Strich durch die Rechnung gemacht. Wenn ich die Medien nur in den oben genannten Ordner verschieben darf, ist die App ntzlos, da die Medien von der Galerie nicht mehr erkannt werden. Gibt es denn wirklich keine Möglichkeit eine Verknüpfung des Ordners anzulegen, das würde alle Probleme lösen???
 
Um eine Verknüpfung zu erstellen brauchst du ja auch Schreibrechte dort wo sie erstellt werden. OK, würdest du sie dann im internen erstellen und auf dein externes verlinken. Aber in deinem externen Verzeichnis darf die Galerie ja nicht lesen. Bei Verknüpfungen zählen die Rechte der Zieldatei.

Ferner gehen Verknüpfungen (Softlinks) nicht auf FAT32. Und somit nicht auf jedem Gerät.

cu
 
@Zoopa

Nochmal von vorne.

"external storage" und "internal storage" sind in dem Kontext missverständliche Begriffe.

Das Smartphone hat ein Verzeichnisbaum mit dem Rootverzeichnis "/"

Daten kann man an zwei Stellen speichern. Das gibt es einen speziellen Sicherheitsbereicht mit strengen Regeln. Er hat den Pfad "/data/data/. Dort liegt der "innere Speicherbereich". Dort hat jede App ein eigenes Verzeichnis. Andere Apps dürfen die Verzeichnisse ohne besondere Berechtigung nicht lesen.
Der andere Ort sind Wechselmedien, meist SD-Karten. Da nicht alle Geräte "SD-Karten" unterstützen oder eine Karte vorhanden ist, kann auch ein "SD-Karte" emuliert werden. Diese emulierte "SD-Karte" liegt dann auf dem nicht wechselbaren Speicher.
Dies ist der externe Speicher. So kann es vorkommen, des mehrere "SD-Karten" gibt.

Hier gibt es noch den Sonderfall des Multi-User auf Tablets, was ein Thema für sich ist.

Im Endeffekt muss die App immer selber überprüfen, ob sie ihre Daten auf eine reale SD-Karte schreibt, und gegebenenfalls wo sich das Verzeichnis befindet. Das Problem hierbei ist, das jeder Hersteller seine "SD-Karten" (real und emuliert) im Verzeichnisbaum an eine andere Stelle hängt.

Meist gibt es spezielle Verzeichnisse für Bilder, Musik usw. Benutze sie am besten, und überlasse den Rest den User.
 
Was du schreibst stimmt und ist mir auch klar, aber es hat nichts mit dem Problem zu tun. :winki: Es ist für das Problem auch vollkommen irrelevant, was man jetzt genau als internen oder externen Speicher bezeichnet, ich hatte nur gehofft, dass ich es so verständlicher ausdrücken kann :razz:

Es ist für das Problem auch egal, wo die Verzeichnisse genau eingehängt sind. Es kommt nur darauf an, was Android wofür hält.

Beim Gerät von Nexus5Fan gibt es eben genau eine "emulierte SD-Karte" und eine physische SD-Karte. Und ob dus jetzt glaube willst oder nicht, du hast als Programmierer einfach nicht auf beide Bereiche denselben Zugriff. Natürlich sind beide irgendwo im Root-Verzeichnis (oder einem Unterverzeichnis) eingehängt, trotzdem macht Android noch eine zusätzliche Unterscheidung.

Ich versuchs am besten mal mit etwas Code zu veranschaulichen. Ich verwende als Beispiel den von ui_3k1 geposteten Beitrag. Er verwendet dort Environment.getExternalStorageDirectory().

Wenn man sich mal die Dokumentation zu dieser Methode durchliest, steht da folgendes:
Return the primary external storage directory. This directory may not currently be accessible[...]

In devices with multiple "external" storage directories, this directory represents the "primary" external storage that the user will interact with.

Zwei Dinge kann man jetzt aus dem Zitat ableiten:

  1. Wenn es primary external storage gibt, gibts vermutlich auch non-primary (secondary..) external storage.
  2. Es kann mehrere external storage directories geben, und nur eines ist primary.

Wie du also korrekt gesagt hast, kann es durchaus mehrere external storage directories geben. Und Google weiss auch, dass das Wort "external" verwirrend klingen kann:

Note: don't be confused by the word "external" here. This directory can better be thought as media/shared storage. It is a filesystem that can hold a relatively large amount of data and that is shared across all applications (does not enforce permissions). Traditionally this is an SD card, but it may also be implemented as built-in storage in a device that is distinct from the protected internal storage and can be mounted as a filesystem on a computer.

In diesem Beispiel bedeutet "external" also einfach ein Directory irgendwo im Filesystem. Das hast du ja auch bereits korrekt erklärt.

Der springende Punkt und der Grund des ganzen Threads ist und bleibt aber die Unterscheidung zwischen primary und secondary.

Auf dem Gerät von Nexus5Fan ist die "emulierte SD-Karte" der primary external storage. Die Methode getExternalStorageDirectory() liefert also den Pfad auf die "emulierte SD-Karte". Dort kannst du mit dem Code von ui_3k1 problemlos beliebige Daten schreiben.

Neu gibt es jetzt seit Android 4.4 die Methode getExternalFilesDirs(). Diese liefert ein Array von Pfaden zu jedem verfügbaren external storage directory. Ich zitiere wieder aus der Dokumentation dieser Methode:

Write access outside of these paths on secondary external storage devices is not available.

Die physische SD-Karte beim Gerät von Nexus5Fan ist secondary external storage, da kann man nicht beliebig drauf schreiben. Nur im Verzeichnis, das diese Methode dir zurückliefert. Ebenfalls aus derselben Methoden-Doku:

Returns absolute paths to application-specific directories on all external storage devices where the application can place persistent files it owns.

Du kannst demzufolge auf der physischen SD-Karte unter Android 4.4 auf dem von Nexus5Fan erwähnten Gerät nur in einem application-specific directory Daten ablegen. Write access outside of these paths on secondary external storage devices is not available.

Vollkommen egal, wie wir diesen Speicherbereich bezeichnen wollen oder wo dieser Speicherbereich im Filesystem eingehängt ist, wenn Android 4.4 die physische SD-Karte als secondary external storage ansieht, kannst du nicht ausserhalb deines privaten Verzeichnisses draufschreiben.
 
Zuletzt bearbeitet:
rihntrha schrieb:
Um eine Verknüpfung zu erstellen brauchst du ja auch Schreibrechte dort wo sie erstellt werden. OK, würdest du sie dann im internen erstellen und auf dein externes verlinken. Aber in deinem externen Verzeichnis darf die Galerie ja nicht lesen. Bei Verknüpfungen zählen die Rechte der Zieldatei.

Ferner gehen Verknüpfungen (Softlinks) nicht auf FAT32. Und somit nicht auf jedem Gerät.

cu

Also mit der Verknüpfung hatte ich mir das so vorgestellt:
Ich verschiebe die Bilder in meinen Ordner der externen SD-Karte. Dann erstelle ich eine Verknüpfung dieses Ordners und verschiebe diese Verknüpfung auf die interne SD-Karte in den Ordner "DCIM". Somit müssten die Bilder auch von der Galerie-App erkannt werden. Würde das so funktionieren??
 
Ich habe jetzt im Internet herausgefunden, dass man Verknüpfungen mithilfe von Symlinks erstellen kann und zwar mir folgendem Befehl:

ln -s ZIEL NAME_DER_VERKNÜPFUNG

Leider habe ich keine Ahnung wie man das in Eclipse oder in den Code eingibt bzw. einbaut.
Kennt sich vielleicht jemand mit Symlinks aus und kann mir eventuell anhand eines Beispiels zeigen, wie ich das in Eclipse eingebe?


mfg
 
Ich glaube das geht nur mit Root-Rechten. Falls du Root haben solltest, könntest du die Links per Code erstellen, etwa so wie HIER beschrieben. Alternativ könntest du es auch von Hand probieren, z.B. mit der App Terminal Emulator oder vom Computer aus via adb shell.
 
Zoopa schrieb:
Ich glaube das geht nur mit Root-Rechten. Falls du Root haben solltest, könntest du die Links per Code erstellen, etwa so wie HIER beschrieben. Alternativ könntest du es auch von Hand probieren, z.B. mit der App Terminal Emulator oder vom Computer aus via adb shell.

Also mein Handy besitzt root. Leider schaffe ich es irgendwie immer nocht nicht, den Befehl in Eclipse einzugeben. Hier mein Code:

Code:
package com.example.symlinktest;

import java.io.BufferedReader;
import java.io.File;
import java.io.InputStreamReader;
import java.util.ArrayList;

import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.ActionBarActivity;

public class SendLogActivity extends ActionBarActivity {

	ArrayList<String> commandLine = new ArrayList<String>();
	commandLine.add("logcat");//$NON-NLS-1$
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_send_log);

		String hauptverzeichnis = Environment.getExternalStorageDirectory().getPath();
		File quelle = new File(hauptverzeichnis + "/DCIM");
		try {
		    Process process = Runtime.getRuntime().exec("ln –s quelle VerknuepfungDCIM");
		    BufferedReader in = new BufferedReader(new InputStreamReader(process.getInputStream()));
		} catch (InterruptedException e) {
		    e.printStackTrace();
		}
		
	}

	
	
}


Bei "commandLine.add("logcat");//$NON-NLS-1$" bekomme ich eine Fehlermeldung:
"Syntay error on token(s), misplaced construct(s)" und
"Syntay error on token ""logcat"", delete this token"

Kann mir jemand helfen?

mfg
 
lösch die zwei Zeilen

Code:
ArrayList<String> commandLine = new ArrayList<String>();
commandLine.add("logcat");

einfach raus, die brauchst du in deinem Fall nicht. Die ArrayList bräuchtest du nur, wenn du mehrere Commands miteinander absetzen willst. (Ausserdem müsste die untere Zeile sowieso in einer Methode sein)
 
Zoopa schrieb:
lösch die zwei Zeilen

Code:
ArrayList<String> commandLine = new ArrayList<String>();
commandLine.add("logcat");

einfach raus, die brauchst du in deinem Fall nicht. Die ArrayList bräuchtest du nur, wenn du mehrere Commands miteinander absetzen willst. (Ausserdem müsste die untere Zeile sowieso in einer Methode sein)

Wo wird die Verknüpfung denn erstellt bzw. wo befindet sie sich denn nach dem Erstellen?
 

Ähnliche Themen

5
Antworten
0
Aufrufe
1.168
586920
5
R
Antworten
6
Aufrufe
1.020
swa00
swa00
W
Antworten
2
Aufrufe
746
rene3006
R
Zurück
Oben Unten