Como ler e escrever arquivos e listar drives com JavaScript

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

Anúncios

Deixe um comentário

Arquivado em JavaScript/Afins

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s