Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Java] java.io.File e renameTo

    Non mi è ben chiaro questo metodo renameTo di java.io.File.

    Mi è stato detto che rinomina il file fisico a cui è legato lo streaming logico. Quello che non capisco è: dopo che lo rinomino, lo streaming logico punterà al fine appena rinominato?

    Cioè se ho questo codice:

    codice:
    File old = new File("pippo.dat"), rname = new File("paperino.dat");
    old.renameTo(rname);
    Cosa farebbe questo codice? è sulle slide della lezione ma mi ha confuso molto.
    Nell'esempio mi pare di aver capito che old è un file realmente presente, quindi c'è sia un flusso logico che fisico, mentre rname è un file che ancora non esiste.

    Mi pare di aver capito che facendo quell'rname io in pratica rinomino pippo.dat in paperino.dat. E mi è stato detto che cosi facendo non si cambia il file logico associato ai vari file, ovvero facendo questa ridenominazione old rimarra un flusso logico che non è associato a nessun file, mentre ad rname si collegherà a paperino.dat che è appena stato rinominato.

    Ho capito bene o mi sono perso qualche passaggio?
    "Estremamente originale e fantasioso" By darkiko;
    "allora sfiga crepuscolare mi sa che e' meglio di atmosfera serale" By NyXo;
    "per favore, già è difficile con lui" By fcaldera;
    "se lo apri te e invece di "amore" ci metti "lavoro", l'effetto è lo stesso" By fred84

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Re: [Java] java.io.File e renameTo

    Originariamente inviato da Neptune
    Non mi è ben chiaro questo metodo renameTo di java.io.File.

    Mi è stato detto che rinomina il file fisico a cui è legato lo streaming logico. Quello che non capisco è: dopo che lo rinomino, lo streaming logico punterà al fine appena rinominato?

    Cioè se ho questo codice:

    codice:
    File old = new File("pippo.dat"), rname = new File("paperino.dat");
    old.renameTo(rname);
    Cosa farebbe questo codice? è sulle slide della lezione ma mi ha confuso molto.
    Nell'esempio mi pare di aver capito che old è un file realmente presente, quindi c'è sia un flusso logico che fisico, mentre rname è un file che ancora non esiste.

    Mi pare di aver capito che facendo quell'rname io in pratica rinomino pippo.dat in paperino.dat. E mi è stato detto che cosi facendo non si cambia il file logico associato ai vari file, ovvero facendo questa ridenominazione old rimarra un flusso logico che non è associato a nessun file, mentre ad rname si collegherà a paperino.dat che è appena stato rinominato.

    Ho capito bene o mi sono perso qualche passaggio?
    Hai capito bene.
    L'oggetto File rappresenta solo un'astrazione (un percorso) per un file, che può esistere oppure no.

    La rinomina (mediante il metodo renameTo() ) è un'operazione che permette, appunto, di rinominare un file (può anche spostare fisicamente il file da un posto all'altro, anche se ci sono particolari restrizioni, documentate nel metodo renameTo()). La rinomina, ovviamente, non ha alcun effetto sull'oggetto File: esso continuerà a rappresentare l'astrazione del vecchio file (chiaramente inesistente dopo la rinomina).

    Faccio notare che la rinomina di un file, su sistemi Linux/Unix, si effettua usando il comando "mv" (contrazione della parola "move"), che viene usato anche per lo spostamento.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.