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 databaseper memorizzare grandi quantitativi di informazione. Ad ognimodo, in alcuni casi, sarà necessario memorizzare oaccedere a dei dati presenti in dei file. In questa lezioneimparerete a leggere e a scrivere sui file presenti sulserver.

Usare <cffile>

Il tag <cffile> viene usato per lavorarecon i files. Il suo attributo action detta quale azionedovrà essere compiuta sul file in questione. Latabella qui sotto descrive le differenti azioni che possonoessere eseguite.

Le azioni di <cffile>

Azione

Descrizione

read legge un file di testo presente su un server e nememorizza il contenuto in una variabile locale
read binary legge un file binario presente sul server e nememorizza il contenuto in una variabile locale
write scrive un file sul server web
append appende del testo alla fine del file presente sulserver
move sposta un file sul server da una directory adun'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 essereletto
variable variabile che contiene il contenuto del file.

In questa lezione si lavorerà con RunningLog.txt, unfile di testo delimitato da spaziature a tab. Ogni lineaviene 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 ilcarattere tab (chr(9)) e in righe usando icaratteri di line feed e carriage return(chr(10)chr(13)). Il file viene mostrato quisotto:

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 ilpercorso assoluto al file RunningLog.txt. Siricordi che l'attributo file di<cffile> richiede un percorso assoluto alfile:

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

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

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

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

<cfif FileExists(RunningLogPath)>

Poi usiamo il tag <cffile> per leggere ilcontenuto del file e memorizzarlo dentro la variabilemyfile:

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

Infine, scorriamo il file usando la variabileCrLf 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 contenutoal 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 acapo in output e prende come valori"Yes" o "No".

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



Ti potrebbe interessare anche

commenta la notizia