Skip Navigation Links



Translate this page now :



»Programação
»Programação.NET
»Banco de Dados
»Webdesign
»Office
» Certificações Microsoft 4
»Treinamentos4
»Programação 4
»Webdesign«
»Office & User Tips«
»Grupos de UsuĆ”rios
»CĆ©lulas AcadĆŖmicas«
intcontpiada : 118
O melhor teclado da microsoft
Você já está cadastrado e participa do grupo de usuários de sua cidade ? Se não, comente o porque.
 
 
FaƧa um pequeno teste com 10 questƵes de VB
.:.
Teste seus conhecimentos em Visual Basic, SQL Server e ASP 3.0 com nossas provas on-line
.:.
Aprimore seus conhecimentos em programaĆ§Ć£o com nosso treinamento on-line de lĆ³gica de programaĆ§Ć£o
.:.
Veja nosso calendƔrio de treinamentos
Gostou da PƔgina?
Então

para um amigo!

Pesquisa personalizada
Pesquisar Dicas:

 






Manipulando arquivos através do FileSystemObject


Não é rara a necessidade de manipular arquivos de um site através de código, pelo contrário : Quer seja para permitir um fácil gerenciamento dos arquivos através do browser, quer seja para exibir ao usuário uma lista de arquivos disponíveis (para download, por exemplo) ou gerenciar locais para upload, a manipulação de arquivos via código ASP se torna uma necessidade cada vez mais frequente.

Existe um conjunto de objetos da Microsoft conhecidos como FileSystemObject. Esse conjunto de objetos nos permite fazer a manipulação de arquivos existentes em um site Web.

O FileSystemObject é um objeto COM. Uma forma interessante de estudar este tipo de objeto é utilizando o próprio VB. No VB podemos fazer referencia a este objeto através do menu project->References, marcando a opção "Microsoft Scripting Runtime". Feita a referencia o Object Browser do VB nos permite visualizar todos os detalhes dos objetos disponíveis no FileSystemObject. Isso nos permite estudar e explorar todo seu potencial.

Vejamos então como fazer uma listagem dos arquivos contidos em nosso site.

O FileSystemObject possui um objeto principal denominado "FileSystemObject" que devemos utilizar para acessar outros objetos (pastas, arquivos, etc.). Para podermos listar o conteúdo de uma pasta precisaremos obter o objeto pasta e acessar seus arquivos. Assim sendo precisaremos de 3 variáveis : FSO, PASTA, ARQ

Nosso código será construido em uma página chamada Arquivos.ASP :

<%

dim fso,arq,pasta
set fso=createobject("scripting.filesystemobject")

%>

O único objeto que instanciamos é o FileSystemObject, os demais obteremos a partir do FileSystemObject. A pasta, por exemplo : Deveremos utilizar o método GetFolder no objeto FSO indicando qual pasta desejamos. O GetFolder exige que passemos um caminho físico, portanto deveremos usar o Server.MapPath para converter a raiz do site em caminho físico, veja :

<%

dim fso,arq,pasta
set fso=createobject("scripting.filesystemobject")

set pasta=fso.getfolder(server.mappath("/")) %>

O objeto Folder, que agora encontra-se na variável Pasta, possui uma coleção chamada Files que contém todos os arquivos da referida pasta. Podemos percorrer esta coleção com um For/Each para fazer a exibição dos nomes dos arquivos, veja :


<%

dim fso,arq,pasta
set fso=createobject("scripting.filesystemobject")

set pasta=fso.getfolder(server.mappath("/"))

For Each arq in fso.Files
response.write(arq.name & "<br>")
next

%>

Este script já pode ser testando, irá listar o nome de todos os arquivos contidos em uma pasta.

Vamos acrescentar mais funcionalidade : Vamos criar um botão "Deletar" que permita que o usuário elimine um registro. O botão precisará ser um botão de submit de um form para realizar a transmissão do nome do arquivo. O nome do arquivo, por sua vez, precisará estar oculto neste form (campo hidden) para que possa ser recuperado pela rotina de deleção.

Vamos criar uma tabela para que a disposição dos nomes de arquivos e do botão "deletar" fique minimamente aceitável.

<%

dim fso,arq,pasta
set fso=createobject("scripting.filesystemobject")

set pasta=fso.getfolder(server.mappath("/"))
%>

<p>
<table width=100%>
<%

for each arq in pasta.files %>
<tr><td> <%
response.write(arq.name) %>
</td><td>
<form method=post action="arquivos.asp">
<input type=hidden name=txtarquivo value="<%=arq.name %>">
<input type=submit value="Apagar">
</form><br></td></tr>
<%

next

%>


O Action, arquivos.ASP, é o mesmo arquivo no qual estamos produzindo este código. Então no inicio do arquivo devemos verificar se já ocorreu o POST e, se ocorreu, devemos deletar o arquivo que foi recebido como parâmetro.

O FSO possui o método DeleteFile que podemos utilizar para deletar um arquivo. Precisaremos informar todo o path do arquivo, mas será fácil montar isso através do objeto Folder (pasta).

Precisaremos também, claro, de um tratamento de erro. Além disso usaremos a variável content_length para identificar o POST. Veja como fica :

<html>
<body>
<%

dim fso,arq,pasta
set fso=createobject("scripting.filesystemobject")

set pasta=f.getfolder(server.mappath("/"))

if request.servervariables("content_length")<>0 then
on error resume next
fso.deletefile pasta.path & "\" & request.form("txtarquivo")
if err.number<>0 then
response.write("Erro ao deletar o arquivo")
else
response.write("Arquivo deletado")
end if
on error goto 0
end if %>
<p>
<table width=100%>
<%

for each arq in pasta.files %>
<tr><td> <%
response.write(arq.name) %>
</td><td>
<form method=post action="arquivos.asp">
<input type=hidden name=txtarquivo value="<%=arq.name %>">
<input type=submit value="Apagar">
</form><br></td></tr>
<%

next

%>
</body>
</html>

Para acrescentarmos uma pergunta de confirmação para o usuário precisaremos programar em JavaScript, já que o ASP não trabalha no client e desta forma não pode, por exemplo, fazer mensagens popup.

Acrescentar a confirmação em JS é bem simples : Basta inserirmos o evento onsubmit do form chamando o método confirm do objeto windows. Apenas precisamos alterar a declaração do form, veja como ela fica :

<form method=post action="arquivos.asp" language="javascript" onsubmit="return window.confirm('Deseja mesmo deletar este arquivo?')">

A esta altura você já deve estar preocupado com a segurança da sua aplicação : Como garantir que qualquer um não possa entrar nesta página e deletar um arquivo ? Ou como garantir que qualquer um não possa deletar um arquivo ?

Bem, existem 2 possibilidades :

A) Para um arquivo ser deletado é necessário que o usuário utilizado pelo IIS tenha permissão para isso e o mesmo acontece para acessar as páginas ASP. Essa permissão é contralada através da segurança NTFS mantida pelo próprio windows NT/2000. Você pode retirar a permissão de acesso do usuário do IIS deste arquivo (arquivos.asp). Então quando tentar acessá-lo o Internet Explorer pedirá um nome e senha de acesso, em geral seu nome e senha de FTP funcionam. Desta forma só você poderá acessar esta página e só você terá permissão para deletar arquivos.

B) Você pode dar permissão ao usuário do IIS para deletar arquivos mas controlar via código ASP o acesso à página arquivos.asp, determinando que apenas determinado usuário (você, claro) possa acessar esta página. É menos seguro, um hacker pode achar um furo em seu código.

Vale mencionar que a configuração de permissões NTFS deverá ser feita pelo provedor de hospedagem

Dennes Torres
MCSD,MCSE,MCDBA





Envie seus comentįrios sobre este artigo

Nome :

E-mail :

Comentários :


Avise-me quando houverem novos comentįrios nesta pįgina

Veja abaixo os comentários já enviados :

Nome : Alline E-Mail : allinebeijos@yahoo.com.br
Gostaria de saber detalhadamente como fazer para deletar um site. Obrigada.
Nome : Dennes E-Mail : gardenni@ig.com.br
Olá Dennes, meu nome é Gardenni, li a sua matéria no site búfalo informática sobre o objeto FileSystemObject e achei muito interessante. Eu baixei alguns códigos asp sobre esse objeto e o que mais se adequol a mim foi esse descrito abaixo:

<%
on error resume next
pagina = 1
Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set vlocal = fs.getfolder("c:\")


For Each parquivo In vlocal.Files
response.write "&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;Arquivo: " &parquivo&"<br>"
response.flush

next
response.write "---------------------------------------------------------------------------------<br>"
For Each nome In vlocal.subfolders
response.write "Sub Pasta: " & nome & "<br>"
Set alocal = fs.getfolder(nome)
For Each arquivo In alocal.Files
response.write "&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;" &arquivo&"<br>"
response.flush
pagina = pagina + 1
Next

Set alocal = Nothing
response.write "---------------------------------------------------------------------------------<br>"
Next
Set vlocal = Nothing
Set fs = Nothing
Set Conn = Nothing
Conn.close
%>

O que eu gostaria de saber, é como armazenar o conteúdo desta listagem em uma variável onde eu possa armazenar em um banco de dados, sem mais obrigado.
Nome : Rodrigo E-Mail : rodrj@hotmail.com
como faço para controlar o acesso de usuários a páginas da minha web?
Crio uma tabela de permissões de acesso,
Faço todas as páginas acessarem o banco de dados e conferir se aquele usuário logado tem acesso?
ou utilizo session????
Qual a segurança de uma session???
Se tiver alguma outra opção seria ótimo.
Obrigado.
Rodrigo
Nome : Marcelo E-Mail : mavelino@gmail.com
Oi, boa tarde!!
Como faço para organizar o txt por rodem de data no asp. Caso alguém saiba como favor me ajude.

Grato.
Nome : Marcelo E-Mail : mavelino@gmail.com
Oi, boa tarde!!
Como faço para organizar o txt por rodem de data no asp. Caso alguém saiba como favor me ajude.

Grato.
Nome : Danielle E-Mail : dani_gunes@hotmail.com
Gostaria de saber como se faz para deletar um site q vc não quer mais em seus endereços...
Isso é urgentemente sério!!!!
Danielle
Gostaria q vc me dissessem o mais rápido possível...
Danielle
Nome : Jason E-Mail : jasonsv@ig.com.br
Quero copiar arquivos através do FSO, achei um exemplo que utiliza:

set fs=Server.CreateObject("Scripting.FileSystemObject")
fs.CopyFile("c:\teste.txt")),("C:\teste")

Porém quero especificar o arquivo a ser copiado através de um campo FILE, como altero para ele buscar do campo FILE?
Nome : Carlos Junior E-Mail : moraes.rodrigues@gmail.com
Tenho um cliente que não permite o uso de filesystemobject,
questiono os motivos que possam levar a essa escolha,
é um servidor que exige forte segurança, mas o uso do filesystemobject, mesmo configurado com as restrições necessárias ainda oferece risco ao servidor? Temos casos de invasões e danos com uso de FileSystemObject?
Não consegui obter essas informações com o cliente mas estou buscando saber os possíveis motivos dessa restrição, se alguem tiver alguma informação será de grande valor.

O cliente permite uso do filesystemobject atraves do COM+ mas não direto em páginas ASP.
Nome : Amanda E-Mail : amandareboucas@gmail.com
Olá,
Estou usando esse objeto para rodar somente no cliente, mas ao criar o objeto ele sempre dá uma mensagem de confirm, informando que o activex pode não ser confiável.
Você já passou por situações parecidas, possui alguma solução? Minhas páginas são todas html.

Obrigada
Nome : liliane E-Mail : liliaugusto@yahoo.com.br
gostaria de saber com faço para deletar um hot mail minha senha foi clonada
Nome : keith E-Mail : keithsoad@gmail.com
Olá...uma dúvida....quando coloco para rodar a pagina com o codigo passado nesse artigo...ele dá um erro bem na linha do For Each ....diz que o objeto não dá suporte a propriedade ou metodo chamado ,no caso o fso.Files do For Each.....o que estaria ocorrendo?...

Att.
Nome : Aumente suas vendas com o GoogFX E-Mail : vendas@googfx.com.br
Conheça a ultima novidade em divulgação empresarial para internet, saia na frente com o GoogFx.

COMO FUNCIONA ?
1- o programa faz um levantamento no Google e no Yahoo, buscando todas as empresas de um determinado segmento que você escolher;
2- depois acessa todos os sites dos resultados obtidos e envia apresentações em texto como essa, por meio de um processo automatico de preenchimento dos formularios 'FALE CONOSCO' de cada site;
3- assim você envia apresentações dos seus produtos e serviços, prospectando milhares de clientes em potencial para o seu negócio;
4 - o sistema desconsidera sites que não tenham formulario de contato, esses não serão contabilizados;
5 - é 100% garantido (todos os emails, sites, e "formularios de contatos unicos" extraidos, ficarão armazenados no seu PC)
Veja na pratica, faça o download do Googfx no site oficial: www.googfx.com.br

email: contato@googfx.com.br
ou: vendas@googfx.com.br
MSN: danilo.gaglioti@bol.com.br
cel: (11)-8407.6492
São Paulo - SP
Nome : Marcelo elias E-Mail : marceloeliasba@gmail.com
Boa noite meu nome é marcelo estou com alguns problemas no meu computador e não consigo solucionar sozinho eu tinha o Adobe Design Premium CS3 instalado e funcionando no meu computador só que de uns tempos pra cá ele parou de funcionar eu o deletei é claro só que estou tentando coloca-lo de volta e não estou conseguindo ele fica dando os seguintes erros!!!!!
Instalação do Adobe Desagner Premium CS3


Erros 9 componentes (s):
Falha na instalação dos componentes Abaixo
Adobe Creative suite 3 Design Premium
Adobe Dremweaver cs3
Adobe Flesh CS3
Adobe Flash Video Encoder
Adobe Indesign CS3
Adobe Photoshop cs3
Adobe Version cue CS3 Serve
Componentes compartilhados

Ocorreram alguns problemas durante a instalação.Veja Acima
poderia por gentileza alguêm que saiba poderia me passar um jeito sei-la de instalar o programa de volta sem formatar o windows por favor obrigado estou com varios projetos meus parados por causa disso desde já agradeço!!!!!
Nome : Luiz Gustavo E-Mail : gustavo@wssinformatica.com
Gostaria de saber como faço para exibir os aquivos da pasta em ordem decrescente, Z-A.
Obrigado!
Nome : -1' E-Mail : 1
1
Nome : 1 E-Mail : -1'
1
Nome : 1 E-Mail : 1
1
Nome : 1 E-Mail : 1
1
Nome : 1 E-Mail : 1
1
Nome : 1 E-Mail : 1
1
Nome : 1 E-Mail : 1
1
Nome : 1 E-Mail : 1
1
Nome : 1 E-Mail : 1
1

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Conheça mais sobre o nosso site :

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::



Quer saber mais?
Faça um curso na Búfalo Informática, Treinamento e Consultoria e
Prepare-se para o Mercado!
Veja o que a Búfalo tem para você.

ļæ½ BĆŗfalo InformĆ”tica, Treinamento e Consultoria - Rua Ɓlvaro Alvim, 37 Sala 920 - CinelĆ¢ndia - Rio de Janeiro / RJ
Tel.: (21)2262-1368 (21) 9240-5134 (21) 9240-7281 e-Mail:
contato@bufaloinfo.com.br