|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
[Java] Nome file con numeri random
Ragazzi ho un piccolo problema...
Devo generare un file il cui nome contenga una stringa da me assegnata ed un numero casuale. Ho fatto in questo modo: Codice:
nome = "tmpfile" + (int)(Math.random() * 1000); Il file generato, cioè, ha questo nome tmpfile46045333, mentre la variabile contiene tmpfile460. Come mai succede questo?
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Dire che la ragione non è nella linea di codice che hai incollato.
Nel caso in cui tu stia usando altrove il metodo File.createTempFile, il nome del file generato è indeterminato: inizia con il prefisso specificato e termina con il suffisso indicato. In mezzo è fantasia |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Quote:
Potresti essere più chiaro?Questo è una parte del mio codice: Codice:
nome = "tmpfile" + (int)(Math.random() * 1000);
try {
......
tempPDF = File.createTempFile(nome, ".pdf");
tempPDF.deleteOnExit();
.....
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Attraverso il metodo "createTempFile" chiedi alla piattaforma Java di generare un file temporaneo che inizi per "nome" (supponiamo "tmpfile443") e termini per ".pdf".
Secondo quanto dichiarato dal metodo createTempFile, ciò che ottieni è un file, collocato nell'ipotetica cartella che il sistema operativo dedica ai file temporanei . Del file ottenuto sai che il suo nome inizia per "tmpfile443" e termina per ".pdf". La ragione per cui è possibile che il file abbia un nome con dei caratteri in più tra il prefisso (tmpfile443) e il suffisso (.pdf) risiede nella previsione che esista una sola cartella atta a contenere tutti i file temporanei del sistema operativo. Per evitare di sovrascrivere altri file temporanei o di ottenere un rifiuto a fronte della richiesta, la piattaforma prevede che il sistema operativo, pur tenendo conto della necessità che il nome del file inizi per "tmpfile443" e termini per ".pdf", possa generare una stringa intermedia che garantisca l'univocità del nome. Detto altrimenti, se crei un file "normale", il File è creato con il nome che gli imponi: File file = new File("tmpfile443.pdf"); Se crei un file temporaneo non imponi il nome completo del file ma solo la parte iniziale e la parte finale: File file = File.createTempFile("tmpfile443", ".pdf"); Il file restituito ha un nome che inizia per "tmpfile443", finisce per ".pdf" e in mezzo può avere dei caratteri in più, per distinguerlo da eventuali altri file, presenti nella cartella dei file temporanei, che altrimenti avrebbero lo stesso nome. |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Aug 2004
Città: Salento
Messaggi: 1080
|
Ora è tutto più chiaro, grazie!
__________________
Il 90% dei problemi riscontrati sui computer sono localizzabili tra la sedia e la tastiera, il restante 10% nella scopa della donna delle pulizie.
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:29.











Potresti essere più chiaro?








