var fso=new ActiveXObject("Scripting.FileSystemObject"); var path=document.location.pathname; path=path.substr(1,path.lastIndexOf("/")); path=path.replace(/%20/g," "); var f=fso.CreateTextFile(path+"data.xml",true); f.write(xmlDoc.xml); f.Close(); fso=null;Rianalizziamolo...
Ecco: creazione di un ActiveXObject FileSystemObject. Quindi creazione di un file di testo:
function funzione(){ var fso=new ActiveXObject("Scripting.FileSystemObject"); var f=fso.CreateTextFile("Ciao.txt",true); } funzione();Questo è sufficiente a crearmi nella stessa locazione del file in cui viene eseguito il codice un file "Ciao.txt".
Il problema del path
Vediamo il path.
function funzione(){ var path=document.location.pathname; document.write(path); } funzione();Output:
/C:/Users/Antonello/Desktop/js.htmlNel codice che avevo creato in passato c'era anche una riga che ritagliava il path, ottenendo l'eliminazione del primo slash e del nome del file:
function funzione(){ var path=document.location.pathname; path=path.substr(1,path.lastIndexOf("/")); document.write(path); } funzione();Output:
C:/Users/Antonello/Desktop/E anche una riga un po' "misteriosa"...:
path=path.replace(/%20/g," ");Ecco, ho ripassato il metodo replace e ho decifrato che questa riga l'avevo messa per sostituire globalmente (g) tutti i simboli %20 (codice ASCII per spazio) con uno spazio reale.
Il problema si pone quando una cartella del path ha degli spazi vuoti nel nome.
Pongo il file in una cartella con spazi vuoti ed ecco cosa ottengo prima di inserire questa riga. Il codice è ancora lo stesso, ma il file è salvato in una cartella chiamata "Cartella con gli spazi".
function funzione(){ var path=document.location.pathname; path=path.substr(1,path.lastIndexOf("/")); document.write(path); } funzione();Output:
C:/Users/Antonello/Desktop/Cartella%20con%20gli%20spazi/Ecco con l'aggiunta di quella riga:
function funzione(){ var path=document.location.pathname; path=path.substr(1,path.lastIndexOf("/")); path=path.replace(/%20/g," "); document.write(path); } funzione();Output:
C:/Users/Antonello/Desktop/Cartella con gli spazi/Unendo questa stringa al nome del file da salvare, ottengo il path completo!
Nessun commento:
Posta un commento