Plattformunabhängig Ordner und Datei in Workspace anlegen

Status
Nicht offen für weitere Antworten.

Miriam84

Mitglied
hallo,

wie ich möchte gern das in meinem workspace beim programmablauf bei auswahl einer bestimmten funktion ein Ordner und eine Datei angelegt wird. Allerdings soll beides nur einmal angelegt werden.

Dazu hätte ich 2 Fragen.

1.wie komme ich an mein Workspacepfa.

2. wie kann ich dort einen Ordner und eine Datei anlegen. Dies soll aber Plattformunabhängig sein, also sowohl unter Unix als auch unter Windows funktionieren.
 
G

Gonzo17

Gast
1.wie komme ich an mein Workspacepfa.

Java:
ResourcesPlugin.getWorkspace().getRoot()
					.getLocation();

Damit sollte das klappen.


2. wie kann ich dort einen Ordner und eine Datei anlegen. Dies soll aber Plattformunabhängig sein, also sowohl unter Unix als auch unter Windows funktionieren.

Hm, ich bin mir nicht sicher, aber theoretisch sollte das doch so klappen:

Java:
String workspacePath = ResourcesPlugin.getWorkspace().getRoot()
					.getLocation().toString();

			File tmpFile = new File(workspacePath
					+ "/test/test.file"); 
			
			if (!tmpFile.exists()){
				tmpFile.getParentFile().mkdirs();
				tmpFile.createNewFile();
			}
 
K

Kelthas1222

Gast
In Eclipse 3.5 sollte man wohl eher folgendes benutzen.
Desweiteren war der Vorschlag nicht plattformunabhängig, da Linux einen Slash, Windows aber einen Backslash benutzt (z.B.)

Java:
  String workspacePath = Platform.getLocation().toOSString(); //Erzeugt den Pfad abhängig vom genutzten System
  String filePath = workspacePath + File.pathSeparator + "ordner" + File.pathSeparator + "file.name";
  //File.pathSeperator ist der Seperator, der für das genutzte System gilt.
  File file = new File(filePath);
  if (!file.exists()) {
	  file.getParentFile().mkdirs();
	  try { 
             //Try {..} catch {...} nötig bei createNewFile()
		file.createNewFile();
	  } catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	  }
  }
 
G

Gonzo17

Gast
Ja, das stimmt, daran habe ich nicht gedacht.

Kann man für den OS-spezifischen "Pfadtrenner" nicht auch folgende Zeile verwenden?

Java:
private static String SEPARATOR = System.getProperty("file.separator");

Den try-catch-Block hab ich im Übrigen weggelassen, weils mir sonst für das kleine Beispiel zu viel gewesen wäre. ^^ War etwas faul. Aber es stimmt natürlich, dass der da hin muss.
 
K

Kelthas1222

Gast
Der Slash funktioniert auf allen Systemen plattformunabhängig, der backslash nicht.

Nicht ganz.
Soweit ich mich erinnere, hatten Dos-basierte Betriebssysteme ihre Probleme mit den Slash.
Kann mich da aber auch irren.

Wenn man ganz sicher sein möchte und es sauber machen will, sollte jedenfalls ein entsprechender Seperator verwendet werden.
Dazu kann man dann einen unserer Vorschläge nutzen.
Denn Gonzos Vorschlag geht natürlich auch :)
 
M

maki

Gast
Soweit ich mich erinnere, hatten Dos-basierte Betriebssysteme ihre Probleme mit den Slash.
Kann mich da aber auch irren.
Du meinst so wie DOS 3.3, Windows 95 und Windows ME? ;)
Seit Windows 2000 gibt es keine DOS basierten OS mehr.
Die irrst dich übrigens, Windows schluckt auch den "normalen" Slash.
 
K

Kelthas1222

Gast
Ich weiß, das AKTUELLE Windows Versionen einen Slash interpretieren.
Aber:
1. Können das die alten (wie die von dir aufgeführten) Dos-basierten Betriebssysteme nicht
2. Selbst wenn es jedes Betriebssystem könnte, wäre der Slash eben nicht das offizielle Seperator Element.
3. Sollte man auch bei kleinen Projekten auf eine saubere Programmierung achten. Dazu gehört eben auch eine OS spezifische Pfadangabe, selbst wenn jedes OS auch ein Slash "schluckt"

Wer Plattformunabhängig sein will, sollte jedenfalls die von Java angebotenen Möglichkeiten verwenden und nicht darauf hoffen, dass es schon irgendwie überall klappt, weil Windows kanns ja
 
K

Kelthas1222

Gast
Sry, für DP...

Ich habe übrigens nie gesagt, dass Windows das allgemein nicht könnte. ;)

Man merkt jedenfalls, dass man sich darüber anscheinend gut streiten kann ^.^
 
M

maki

Gast
Wieso streiten? ;)

Falls jemand wirklich ein 9+ Jahre altes OS einsetzt, wird der Slash nicht sein einziges bzw. größtes Problem sein ;)

Jedenfalls kann man seit Jahren mit dem Slash arbeiten, ohne Probleme, sogar unter Windows.
 
K

Kelthas1222

Gast
Gepflegte Diskussionen sind immer gut und bringen Leben ins Geschäft ^.^

Falls jemand wirklich ein 9+ Jahre altes OS einsetzt, wird der Slash nicht sein einziges bzw. größtes Problem sein
Wobei ich dir recht gebe, aber plattformunabhängig schließt das in meinen Augen ein *nick*

Jedenfalls kann man seit Jahren mit dem Slash arbeiten, ohne Probleme, sogar unter Windows.
Wo ich dir wieder recht gebe, aber ein anderes Beispiel.
Welchen Seperator benutzt Mac denn?
Soweit ich weiß, war das bis vor kurzem noch ein Doppelpunkt... Hab aber nie ein Apple System genutzt (außer auf meinem iphone...), daher kann ich das nicht mit sicherheit sagen...
 

Wildcard

Top Contributor
Mac benutzt / und das Betriebssystem wird von einem / sowieso nichts mitbekommen, weil in die VM im Windows Fall als \ interpretiert. Unsauber ist das nicht.
Den OS spezifischen Separator brauchst du erst dann, wenn du dem User Pfade textuell darstellen willst.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Eclipse vergißt beim Exportieren Resources-Ordner Plattformprogrammierung 11
G Jar Datei in Eclipse erstellen mit Ressourcen Ordner Plattformprogrammierung 9
R Aktuelle Datei in Plugin bearbeiten Plattformprogrammierung 2
feinperligekohlensaeure Eclipse Workspace gemeinsam Nutzen -> keine .project Datei Plattformprogrammierung 1
P xText Datei verstecken Plattformprogrammierung 5
B Mac Installer aus .product Datei - Programm öffnet sich nicht Plattformprogrammierung 1
P RCP An Datei speichern (Protokolldatei) Plattformprogrammierung 2
S RCP Exportiertes RCP Produkt lädt Datei nicht, bei Start aus Eclipse wird Datei jedoch gefunden Plattformprogrammierung 6
S Wie lauffähige .jar-Datei mit Netbeans für Java3D Anwendung erstellen? Plattformprogrammierung 8
maestr0 Prüfen ob eine Datei im Projektordner existiert Plattformprogrammierung 9
C Ausführbare Jar erzeugen (Datei wird nicht gefunden) Plattformprogrammierung 4
H Datei in eclipse wird nicht erkannt Plattformprogrammierung 3
L RCP RCP als eine Exe-Datei exportieren? Plattformprogrammierung 2
G RCP Datei im Bundle Plattformprogrammierung 6
C Pdf in jar datei einbinden mit eclipse Plattformprogrammierung 23
X Datei in einem Eclipse Projekt über Plugin zugreifen Plattformprogrammierung 2
P Update: Nur die JAR Datei für alle Betriebssysteme ? Plattformprogrammierung 9
Spot84 datei im editor öffnen(tutorial undurchsichtig) Plattformprogrammierung 5
Spot84 ecore konforme xml datei erstellen Plattformprogrammierung 7
S XMI Datei in Access einlesen Plattformprogrammierung 9
B Eclipse-Console: Hyperlink ausgeben, der Datei öffnet Plattformprogrammierung 5
G xml-Datei im Editor importieren Plattformprogrammierung 3
M Relative Pfade zur ini-Datei Plattformprogrammierung 28
G jar Datei zu RCP hinzufügen Plattformprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben