2017-01-23 8 views
1

Ich versuche, eine neue Datei als boo/en_en zu erstellen. JSON Foo Ordner, aber IntelliJ Idee denkt, dass boo ist ein Verzeichnis und de_en.json ist eine Datei. Wie soll ich dieses Problem beheben?Dateiname enthalten Schrägstrich Interpunktion und gibt Ausnahme im Thread "Haupt" java.io.FileNotFoundException: foo/boo/en_en.json (keine solche Datei oder Verzeichnis)

Mein Code ist:

val target = new PrintWriter(new File(s"foo/$name-$locale.json")) 

Und Name enthält slash Zeichensetzung.

Betriebssystem ist MacOs Sierra.

+1

Nun, '/' * ist das Dateitrennzeichen auf MacOs, soweit ich weiß, oder? Kannst du eine Datei mit diesem Namen auch auf andere Weise erstellen? – Hulk

+0

Warum würden Sie überhaupt daran denken, einen Schrägstrich im Dateinamen zu verwenden? – Dummy

+0

Hallo @Hulk Es ist Voraussetzung für das Projekt. Ich kann eine Datei manuell auf meinem Computer erstellen, aber ich kann nicht mit diesem Code. –

Antwort

1

Es ist nicht intellij, das es blockiert, Sie können Schrägstrich in Ihren Dateinamen setzen, die zugrunde liegende API blockiert es.

1

Sie sollten nicht in der Lage sein, eine Datei mit einem / in seinem Namen auf OSX über die Java API zu erstellen. Sie können dies manuell im Finder tun, aber es ersetzt automatisch / durch einen : im Dateinamen, den es tatsächlich auf der Festplatte speichert. Wenn Sie möchten, dass es im Finder als / angezeigt wird, speichern Sie es mit einem :. Alle Programme, die auf die Datei zugreifen müssen sie das mit der :

example of filename on commandline vs in finder

Dies ist auf Unterschiede zwischen Legacy-Mac-Dateisystempfade und Unix-Dateisystem Pfade.

Allerdings ist es eine schreckliche Idee, jemals eine / in einem Dateinamen zu haben, da es unglaublich verwirrend ist.

Verwandte Themen