Os dois primeiros exemplos usam ActiveX, ou seja, rodam apenas no Internet Explorer, o ultimo roda em qualquer browser.
No link de referência ao final do post os caras usam extensão pra fazer o mesmo sem ActiveX.
Usando JavaScript para escrever um arquivo (usa ActiveX):
function WriteFile() { var fso = new ActiveXObject("Scripting.FileSystemObject"); var fh = fso.CreateTextFile("c:\\Test.txt", true); fh.WriteLine("Some text goes here..."); fh.Close(); } //chamada da função WriteFile();
Listando drives disponíveis na sua máquina (usa ActiveX):
function ShowAvailableDrives() { document.write(GetDriveList()); } function GetDriveList() { var fso, s, n, e, x; fso = new ActiveXObject("Scripting.FileSystemObject"); e = new Enumerator(fso.Drives); s = ""; do { x = e.item(); s = s + x.DriveLetter; s += ":- "; if (x.DriveType == 3) n = x.ShareName; else if (x.IsReady) n = x.VolumeName; else n = "[Drive not ready]"; s += n + "<br>"; e.moveNext(); } while (!e.atEnd()); return(s); } //chamada da função ShowAvailableDrives();
Usando JavaScript para ler arquivos (NÃO usa ActiveX):
<!-- var srcFrame; //External content into a layer function loadOuter(doc) { srcFrame = document.getElementById("hiddenContent"); srcFrame.src = doc; // workaround for missing onLoad event in IFRAME for NN6 if (!srcFrame.onload) { setTimeout("transferHTML()", 1000) } } function transferHTML(){ srcContent=''; if (srcFrame.contentDocument){ srcContent=srcFrame.contentDocument.getElementsByTagName("BODY")[0].innerHTML; } else if (srcFrame.contentWindow){ srcContent=srcFrame.contentWindow.document.body.innerHTML; } document.getElementById("outerDisplay").innerHTML = srcContent } var DocAry=new Array('Test.txt','Test2.txt'); function SelectList(v){ if (v>0){ loadOuter(DocAry[v-1]); } } //uso // //<INPUT TYPE="button" VALUE="Test.txt" onClick="loadOuter('Test.txt')" > //<INPUT TYPE="button" VALUE="Test2.txt" onClick="loadOuter('Test2.txt')" > //
Para rodar o exemplo de leitura crie os arquivos Test.txt e Test2.txt no mesmo diretório da página html do exemplo:
Test.txt Item 1 Item 2 Item 3 Item 4 Item 5 Item 6 Item 7 Test2.txt Item 11 Item 12 Item 13 Item 14 Item 15 Item 16 Item 17
Quem quiser contribuir com outros exemplos de ler, escrever e listar diretórios compativeis com os demais navegadores, posta ai que atualizo no post e crédito a devida autoria 🙂
Referências:
How to read and write files in JavaScript. http://www.c-point.com/JavaScript/articles/file_access_with_JavaScript.htm acessado em 23/08/2011
vwphillips. Codingforuns. http://www.codingforums.com/showthread.php?t=647 acessado em 23/08/2011