|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Nov 2002
Città: Ivrea-Milano
Messaggi: 381
|
[Java]
Salve ho un problema veloce veloce.....
Creo un flusso di dati per il quale mi serve un file di partenza. Questo file pero' voglio che sia variabile e non capisco come mettere un percorso... Infatti posso solo mettere nomi di file all'interno della directory in cui e' il .class Io invece voglio poter prendere un file in chessoio c:\filez\prova.txt (se lo scrivo cosi' li' dove vuole la stringa del file mi sputa) il percorso lo deve inserire l'utente Altro problema..... io devo poter far girare il programma su altri sistemi operativi(linux).....come gestisco i path?(non mi intendo di linux) Grazie mille a tutti =) Fumereo |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
I path sui sistemi unix usano il separatore di directory "/" invece di "\", e non esiste il concetto di partizione c: d: ecc. (le partizioni sono gestite in altro modo). Un tipico percorso di un file è questo, ad esempio:
/usr/lib/libjpeg.so Non conosco java, ma sicuramente ha degli strumenti per gestire i path in modo indipendente dal s/o.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: May 2003
Messaggi: 119
|
Se lo scrivi così funziona
c:\filez\prova.txt solo ke se è 1 costante da codice e qindi tra virgolette \ è l'escape character cioè nn t considera il carattere dopo e serve per fare cose particolari. Ad esempio x andare a capo scrivi \n per inserire 1 \ tra virgolette devi scrivere \\ e qindi "c:\\filez\\prova.txt" x qanto riguarda linux devi solo mettere la / invece di \ (e in tal caso ne basta 1) Ultima modifica di Molz : 22-10-2003 alle 07:55. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
esatto, la classe java.io.File ha una stringa statica chiamata pathSeparator che contiene il separatore relativo al SO in cui stai eseguendo la VM |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
dalla documentazione:
The prefix concept is used to handle root directories on UNIX platforms, and drive specifiers, root directories and UNC pathnames on Microsoft Windows platforms, as follows: * For UNIX platforms, the prefix of an absolute pathname is always "/". Relative pathnames have no prefix. The abstract pathname denoting the root directory has the prefix "/" and an empty name sequence. * For Microsoft Windows platforms, the prefix of a pathname that contains a drive specifier consists of the drive letter followed by ":" and possibly followed by "\" if the pathname is absolute. The prefix of a UNC pathname is "\\"; the hostname and the share name are the first two names in the name sequence. A relative pathname that does not specify a drive has no prefix. |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Quote:
![]() Oppure ancora meglio: Codice:
String file_separator = System.getProperty("file.separator"); if(file_separator.equals("/")) OS = "unix"; else OS = "win"; |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Nov 2002
Città: Ivrea-Milano
Messaggi: 381
|
grazie ...quindi per meglio capire....
io chiedo all'utente di inserire il path del file da scegliere....lui me lo scrive...io lo infilo in una stringa File. Poi con quel codice li' riconosco se l'utente usa win o unix (domanda che valore viene dato a file_separator con questo metodo System.getProperty("file.separator")? non mi e' del tutto chiaro) a quel punto magari nel caso di win per usare il path nel codice uso uno stringTokenizer e dove vedo un \ ce ne metto un altro in modo da ottenere \\ .......e' sensata ocme idea? Fum |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
del primo pezzo non ho capito un tubo, ma per il secondo ti dico di no: se scrivo Codice:
String pippo="c:\\winnt\\system32" ma se hai una string che contiene il carattere '\\' non devi raddoppiare un bel niente ![]() |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Vuoi un consiglio'? Usa un FileChoseer che ti rende tutto trasparente... cmq System.getProperty("file.separator")? ti restituisce "\\" per WIn e "/" per Unix
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:43.