# auf freigebene Ordner zugreifen



## Steven Hachel (11. Mrz 2010)

Sehr geehrte Gemeinde,

ich weiß nicht, ob es grundsätzlich nicht geht, aber wie kann ich auf im Netzwerk freigegebene Ordner arbeiten?
Möchte darin gerne Files schreiben. Ist das Möglich, oder kann ich nur Dateien lesen, die sich darin befinden?
In meinem Fall wäre es der Ordner "//127.0.0.1/Testordner". Ich habe absolut nicht die Möglichkeit, dort eine Datei zu erzeugen. Rechte sind alle gesetzt.
Arbeite unter WinXP.

mfg Steven

Beispiel mit File:

```
FileOutputStream file  = new FileOutputStream(new File("//127.0.0.1/Testordner/test.txt"));
	    file.write("hello world".getBytes());
	    file.close();
```

Exception ist:

```
Exception in thread "main" java.lang.RuntimeException: java.io.FileNotFoundException: \\127.0.0.1\Testordner\test.txt (Zugriff verweigert)
	at test.FileWriter.main(FileWriter.java:25)
Caused by: java.io.FileNotFoundException: \\127.0.0.1\Testordner\test.txt (Zugriff verweigert)
	at java.io.FileOutputStream.open(Native Method)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
	at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
	at test.FileWriter.main(FileWriter.java:16)
```


----------



## nrg (11. Mrz 2010)

Steven Hachel hat gesagt.:


> In meinem Fall wäre es der Ordner "//127.0.0.1/Testordner"



heisst es nicht \\127.0.0.1\Testordner ?

wobei es lt Exception richtig umgewandelt wird:
-> \\127.0.0.1\Testordner\test.txt (Zugriff verweigert)

Aber Zugriff verweigert sagt doch schon alles. Du willst eine Datei erzeugen. Hast du sicher write Rechte auf den Ordner?

werd das mal schnell selbst testen und mich gleich nochmal melden 

edit:


```
BufferedWriter bfw = new BufferedWriter (new FileWriter ("\\\\ip\\ordner\\ordner\\test.txt"));
		bfw.write("Hallo welt");
		bfw.close();
```

funktioniert bei mir


----------



## Steven Hachel (11. Mrz 2010)

Jau, dass teste bitte auch mal. 
Rechte sind gesetzt. Vollzugriff für alle, aber jedesmal die selbe Exception. Ist doch echt zum Mäuse melken.


----------



## nrg (11. Mrz 2010)

mach mal den Pfad wie ich in meinen Test mit Backslashes und vergesse sie nicht zu escapen


----------



## Otzelot (11. Mrz 2010)

Also bei mir funktionieren eure beiden Codes. Muss dann wohl an deinen Zugangsberechtigungen liegen.

EDIT: Eine vielleicht komische Frage, aber du hast schon nur den Ordner "Testordner" freigegeben oder hast du das komplette Laufwerk freigegeben?  Dann müsste man eventuell
     //127.0.0.1/c/Testordner/test.txt")); schreiben


----------



## Gast2 (11. Mrz 2010)

Geht das so überhaupt über das Netzwerk? . "//127.0.0.1" wäre ja nicht ein valider Folder im Dateisystem sondern zeigt auf eine Netzwerkressource - auch wenn es in diesem speziellen Fall der gleiche Rechner wäre und damit eine Ausnahme wäre. 
Alternative ist die Netzwerkressource in Windows mounten und dann einfach mit dem ganz normalen Driver-Letter arbeiten.

z.B. Wenn du eine Freigabe auf Rechner 123.1.12.123/TestOrdener hast diesen als Netzwerklaufwerk in dein Windows einhängen als z.B. T:\

Dann kannst du (entspechende Rechte vorausgesetzt) auch mit [c]new File("T:/test.txt"));[/c] in diesen Ordner schreiben. Den Netzwerktransfer/protokoll nimmt dir dann Windows ab.


----------



## Steven Hachel (11. Mrz 2010)

@nrg Sooo, ich habe mir nochmal nen neuen Ordner angelegt und alle Rechte drauf gehauen.
Ich danke dir für die fixe Hilfe. Funzt alles super. 

mfg Steven 

EDIT: Danke an euch dreien. Funzt alles. Kann sein, dass es wirklich nur an den Rechten lag.  Oder eben Fehler 40 ^^


----------

