Christian Castelli
a- a+

Lavorare con i files e le directory (Parte I)

LAVORARE CON I FILES E LE DIRECTORY

La maggior parte delle applicazioni web sfruttano i database per memorizzare grandi quantitativi di informazione. Ad ogni modo, in alcuni casi, sarà necessario memorizzare o accedere a dei dati presenti in dei file. In questa lezione imparerete a leggere e a scrivere sui file presenti sul server.

Usare <cffile>

Il tag <cffile> viene usato per lavorare con i files. Il suo attributo action detta quale azione dovrà essere compiuta sul file in questione. La tabella qui sotto descrive le differenti azioni che possono essere eseguite.

Le azioni di <cffile>

Azione

Descrizione

read legge un file di testo presente su un server e ne memorizza il contenuto in una variabile locale
read binary legge un file binario presente sul server e ne memorizza il contenuto in una variabile locale
write scrive un file sul server web
append appende del testo alla fine del file presente sul server
move sposta un file sul server da una directory ad un'altra
rename rinomina (o sposta) un file presente su un server
copy copia un file presente sul server
delete cancella un file dal server
upload salva un file in una directory sul server


Lettura di un file

Quando si va a leggere il contenuto di un file, <cffile> richiede tre attributi:

Attributi di <cffile> per la lettura di files

Attributo

Descrizione

action deve essere settato per permetterne la lettura
file contiene il percorso assoluto al file che deve essere letto
variable variabile che contiene il contenuto del file.

In questa lezione si lavorerà con RunningLog.txt, un file di testo delimitato da spaziature a tab. Ogni linea viene formattata come segue:

FirstName#chr(9)#LastName#chr(9)#time#chr(9)#comments#chr(10)##ch  r(13)#

Il file viene diviso in "colonne" usando il carattere tab (chr(9)) e in righe usando i caratteri di line feed e carriage return (chr(10)chr(13)). Il file viene mostrato qui sotto:

Es.1: RunningLog.txt

11/10/07 3 chilometri 26:34 Ragazzi, sono fuori forma11/12/07 3.1 chilometri 28:23 Sono ancora stanco dall'ultima volta11/24/07 2.5 chilometri 23:44 Sembra quasi non abbia corso per due settimane12/24/07 4.1 chilometri 34:02 Sarò in forma per Natale!

Il codice qui sotto legge e mostra il file al browser.

Es.2: RunningLog.cfm

<html>
  <head>
    <title>Esecuzione del log</title>
  </head>
  <body>
  <h1>Esecuzione del log</h1>
  <a href="AddEntry.cfm">Aggiungi una voce</a><hr/>
  <cfset RunningLogPath = ExpandPath("Logs/RunningLog.txt")>
  <cfset CrLf = chr(10) & chr(13)>
  <cfif FileExists(RunningLogPath)>
   <cffile action="read" file="#RunningLogPath#" variable="myfile">
   <cfloop list="#myfile#" index="run" delimiters="#CrLf#">
    <cfoutput>#run#<br/></cfoutput>
   </cfloop>
  <cfelse>
   Sembra non sia mai stato creato il log.
  </cfif>
  </body>  
</html>

 

<a href="/img/22/iframe_CF_files1.html" title= "Vedi esempio">Vedi codice</a>;

 

Diamo un'occhiata passo passo al codice.

Per prima cosa creiamo una variabile in grado di contenere il percorso assoluto al file RunningLog.txt. Si ricordi che l'attributo file di <cffile> richiede un percorso assoluto al file:

<cfset RunningLogPath = ExpandPath("Logs/RunningLog.txt")>

Poi, creiamo una variabile chiamata CrLf che contiene un carriage return/line feed. Verrà usata come delimitatore quando scorreremo le linee del file attraverso un ciclo:

<cfset CrLf = chr(10) & chr(13)>

Il prossimo passo consiste nell'uso della funzione FileExists() per verificare che il file RunningLog.txt esista. In caso affermativo, scorreremo un file attraverso un ciclo stampano il suo contenuto, linea per linea, al browser. Se il file non esiste stamperemo "Sembra non sia mai stato creato il log":

<cfif FileExists(RunningLogPath)>

Poi usiamo il tag <cffile> per leggere il contenuto del file e memorizzarlo dentro la variabile myfile:

<cffile action="read" file="#RunningLogPath#" variable="myfile">

Infine, scorriamo il file usando la variabile CrLf come delimitatore:

<cfloop list="#myfile#" index="run" delimiters="#CrLf#">   <cfoutput>#run#<br></cfoutput></cfloop>     

Scrivere ed appendere contenuti ad un file

Quando si scrive o si aggiunge del contenuto in un file, <cffile> richiede tre attributi:

Gli attributi di <cffile> per scrivere file

Attributo

Descrizione

action Deve essere settata per scrivere o appendere contenuto al file
file Contiene il percorso assoluto al file da scrivere
output Contiene il testo da scrivere nel file

TAnche l'attributo addnewline è importante: determina se deve essere aggiunto un ritorno a capo in output e prende come valori "Yes" o "No".

Si noti che ColdFusion quando tenta di aggiungere del contenuto ad un file insesistente, lo creerà se ha i permessi necessari e se la directory specificata esiste.



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Lorenzo
Hai qualche domanda da fare?