| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  20-04-2006, 18:54 | #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.     | 
|   |   | 
|  20-04-2006, 19:18 | #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  . | 
|   |   | 
|  20-04-2006, 19:24 | #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.     | |
|   |   | 
|  20-04-2006, 20:27 | #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. | 
|   |   | 
|  20-04-2006, 20:39 | #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: 20:11.









 
		 
		 
		 
		







 
  
 



 
                        
                        










