Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Maria claudia

Novo problema com FSO

Recommended Posts

FSO ainda continua dando problema o que pode ser?

 

___________------------------------------------------------------------------_________________

 

<table><tr>	<td></td>	<td><% Set fs = server.CreateObject("Scripting.FileSystemObject") Set pasta = fs.GetFolder("c:\domains\doidera\wwwroot\pegar\") %> <table border="0" cellpadding="2" cellspacing="2" bordercolor="silver"> <% FOR EACH file IN pasta.Files if Right(file.name,4) = ".zip" OR Right(file.name,4) = ".wma" then%><tr><td align="right"><div align="left"><a href="<%=file.name%>"><LI><%=file.name%></a></div></td></tr> <%end ifnext%> </table> </td></tr></table>
_---------------------------------------------------------------------------------------------------

 

 

 

AChei na net esse tuto mas infelizmente não consegui fazer funcionar pois ainda sou iniciante em ASP se alguem souber e puder me ajuda ficaria grata.

 

----

<%"Primeiro vamos abrir um objeto FSOSet objFSO = Server.CreateObject ( "Scripting.FileSystemObject" )"Agora pegamos a pasta com as imagens!Set objPasta = objFSO.GetFolder ( Server.Mappath("images\") )"Vamos criar um recordset agora!"Ele que vai ter o trabalho de ordenar os arquivos!Set Rs = Server.CreateObject ( "ADODB.RecordSet" )"Vamos adicionar 2 campos nesse recordset!"O método Append recebe 3 parâmetros:"Nome do campo, Tipo, Tamanho (opcional)"O tipo pertence à um DataTypeEnum, e você pode conferir os tipos em"http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdcstdatatypeenum.asp"200 -> VarChar (String), 7 -> DataRs.Fields.Append "nome", 200, 255Rs.Fields.Append "data", 7"Vamos abrir o Recordset!Rs.Open"Temos que percorrer agora todos os arquivos e jogar na nossa tabela virtual!For Each Arquivo In ObjPasta.FilesRs.AddNewRs.Fields("nome").Value = Arquivo.NameRs.Fields("data").Value = Arquivo.DateLastModifiedNext"Todos os arquivos no recordset, agora vamos ordená-lo!"Da maior data para a menor!Rs.Sort = "data desc""Pronto! Agora temos os arquivos todos em ordem em nosso recordset! Vamos exibi-los!Rs.MoveFirstWhile Not Rs.EoFResponse.Write "<img src=""images/" & rs.fields("nome").value & """><br>"Response.Write "Data de Modificação: " & rs.fields("data").valueResponse.Write "<p>"Rs.MoveNextWend"Fechando os objetos!Rs.CloseSet Rs = NothingSet objPasta = NothingSet objFSO = Nothing%>
----

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual problema ocorreu com esse código?

Eu queria saber se tem como esse meu código listar os aquivos do diretorio em ordem de postagem não consegui fazer isso peguei aquele tuto que postei acima mas não consigo fazer você pode me ajuda abaixo o meu codigo que lista os aquivos.
<table><tr>	<td></td>	<td><% Set fs = server.CreateObject("Scripting.FileSystemObject") Set pasta = fs.GetFolder("c:\domains\doidera\wwwroot\pegar\") %> <table border="0" cellpadding="2" cellspacing="2" bordercolor="silver"> <% FOR EACH file IN pasta.Files if Right(file.name,4) = ".zip" OR Right(file.name,4) = ".wma" then%><tr><td align="right"><div align="left"><a href="<%=file.name%>"><LI><%=file.name%></a></div></td></tr> <%end ifnext%> </table> </td></tr></table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual problema ocorreu com esse código?

Eu queria saber se tem como esse meu código listar os aquivos do diretorio em ordem de postagem não consegui fazer isso peguei aquele tuto que postei acima mas não consigo fazer você pode me ajuda abaixo o meu codigo que lista os aquivos.<table><tr><td></td><td><% Set fs = server.CreateObject("Scripting.FileSystemObject") Set pasta = fs.GetFolder("c:\domains\doidera\wwwroot\pegar\") %> <table border="0" cellpadding="2" cellspacing="2" bordercolor="silver"> <% FOR EACH file IN pasta.Files if Right(file.name,4) = ".zip" OR Right(file.name,4) = ".wma" then%><tr><td align="right"><div align="left"><a href="<%=file.name%>"><LI><%=file.name%></a></div></td></tr> <%end ifnext%> </table> </td></tr></table>
certo, isso já foi compreendido, quero saber se apareceu algum erro durante a execução do código ou se simplesmente não ordenou

Compartilhar este post


Link para o post
Compartilhar em outros sites

sql faiz uma falta na vida da gente em ^^seria apenas um order by =/não existe uma opção no FSO que pega a data DateLastModified??a partir dai acho que ja da uma boua ajudada para a resolução do problema!no meu modo de vista existe 2 saidas para esse problema.1ª - criar um array, e ordernar por logica!2ª - seguir o exemplo que você encontrou, que é inserir as informações do arquivo em um DB e dpois usar apenas o order by para exibi-los em ordem de modificação...bem, posso tentar ajudar.....vou tentar alguma coisa aqui, se eu obtiver exito eu compartilho com vcs!!abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

prontinho =D

agora sim ^_^

 

primera coisa.. cria um DB chamado controle.mdb e crie uma tabela chamada controle com os seguintes campos:

 

- sessionid texto 50

- data Data

- arquivo texto 50

- tipo texto 3

 

após isso crie o arquivo fso.asp:

<% Set fs = server.CreateObject("Scripting.FileSystemObject") Set pasta = fs.GetFolder(server.mappath(".")) set conn = server.createobject("adodb.connection")set rs = server.createobject("adodb.recordset")constr = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & server.MapPath("controle.mdb")conn.open constr%> <% FOR EACH file IN pasta.Files 	tipo = split(file.name,".")	sql = "INSERT INTO CONTROLE VALUES ('" & session.SessionID & "','" & file.DateLastModified & "','" & file.name & "','" & tipo(1) & "')"	conn.execute(sql)nextsql = "select * from controle where (sessionid = '" & session.SessionID & "' and (tipo = 'wma' or tipo = 'zip')) order by data"rs.open sql,connResponse.Write "<table width='100%' border='1' cellpadding='0' cellspacing='2' bordercolor='#999999'>"Response.Write "  <tr>"Response.Write "	<td width='33%' bgcolor='#999999'><div align='center'><strong>Arquivo</strong></div></td>"Response.Write "	<td width='33%' bgcolor='#999999'><div align='center'><strong>Tipo</strong></div></td>"Response.Write "	<td width='33%' bgcolor='#999999'><div align='center'><strong>Ultima Modificação </strong></div></td>"Response.Write "  </tr>"do while not rs.eof	arquivo = split(rs("arquivo"),".")	Response.Write "  <tr>"	Response.Write "	<td bgcolor='#F5F5F5' align='center'><a href='"&rs("arquivo")&"'>"&arquivo(0)&"</a></td>"	Response.Write "	<td bgcolor='#F5F5F5' align='center'>"&rs("tipo")&"</td>"	Response.Write "	<td bgcolor='#F5F5F5' align='center'>"&rs("data")&"</td>"	Response.Write "  </tr>"	rs.movenextloopResponse.Write "</table>"rs.closesql = "delete from controle where sessionid='" & session.SessionID & "'"conn.execute(sql)%> <%conn.close()Set fs = nothingSet pasta = nothingset conn = nothingset rs = nothing%>

 

é isso... bem... o código é simples.... ele pega insere os arquivos listados no db com as informações necessarias para lista-lo depois do modo desejado, que no seu caso era por data de modificação e por tipo 'wma' e 'zip'

o codigo insere os arquivos com a sessionID no navegador....

lista - os usando o select para organizar, e por fim para não sobrecarregar nada deleta todo o hisotrico criado na tabela....

 

é isso... qualquer duvida posta ai =D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Da forma que apresentou no exemplo abaixo é só trocar o caminho para a sua pasta

<%
'Primeiro vamos abrir um objeto FSO
Set objFSO = Server.CreateObject ("Scripting.FileSystemObject")

'Agora pegamos a pasta com as imagens!
Set objPasta = objFSO.GetFolder (Server.Mappath("images\")) 'AQUI - você deve colocar apenas uma parte do caminho da pasta que quer listar. Me baseando em seu script seria apenas essa parte que entra ali no Server.MapPath "doidera\wwwroot\pegar\"

'Vamos criar um recordset agora!
'Ele que vai ter o trabalho de ordenar os arquivos!
Set Rs = Server.CreateObject ( "ADODB.RecordSet" )

'Vamos adicionar 2 campos nesse recordset!
'O método Append recebe 3 parâmetros:
'Nome do campo, Tipo, Tamanho (opcional)
'O tipo pertence à um DataTypeEnum, e você pode conferir os tipos em
"http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ado270/htm/mdcstdatatypeenum.asp
'200 -> VarChar (String), 7 -> Data
Rs.Fields.Append "nome", 200, 255
Rs.Fields.Append "data", 7

'Vamos abrir o Recordset!
Rs.Open

'Temos que percorrer agora todos os arquivos e jogar na nossa tabela virtual!
For Each Arquivo In ObjPasta.Files

Rs.AddNew
Rs.Fields("nome").Value = Arquivo.Name
Rs.Fields("data").Value = Arquivo.DateLastModified

Next

'Todos os arquivos no recordset, agora vamos ordená-lo!
'Da maior data para a menor!
Rs.Sort = "data desc" ' DESC para descentende e ASC para ascendente

'Pronto! Agora temos os arquivos todos em ordem em nosso recordset! Vamos exibi-los!
Rs.MoveFirst
While Not Rs.EoF
Response.Write "<img src=""images/" & rs.fields("nome").value & """><br>"
Response.Write "Data de Modificação: " & rs.fields("data").value
Response.Write "<p>"

Rs.MoveNext
Wend

'Fechando os objetos!
Rs.Close
Set Rs = Nothing

Set objPasta = Nothing
Set objFSO = Nothing
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz do jeito que você falo salgado olha o que deu.Server.MapPath() error 'ASP 0172 : 80004005' Invalid Path /voz/teste.asp, line 6 The Path parameter for the MapPath method must be a virtual path. A physical path was used.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Maux, valeu eu também tentei cria o banco de dados do jeito que você falou olha o q deu

 

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

 

[Microsoft][ODBC Microsoft Access Driver] Number of query values and destination fields are not the same.

 

/doidera/teste.asp, line 21

 

aqui segue meu código com banco mdb

 

http://rapidshare.com/files/47567273/ordena.zip

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poste seu código até a linha 6. Não é nescessário utilizar um MDB apenas para isso, o RecordSet desconectado com uma tabela virtual atende perfeitamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não consegui tõ desconfiada que este código está com algu erro você pode dá uma olhadinha para min, ér que sou iniciante.

 

 

 

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head>	<title>Untitled</title></head><body><%'Primeiro vamos abrir um objeto FSOSet objFSO = Server.CreateObject ("Scripting.FileSystemObject")'Agora pegamos a pasta com as imagens!Set objPasta = objFSO.GetFolder (Server.Mappath("c:\domains\doidera.com.br\wwwroot\voz\")) 'AQUI - você deve colocar apenas uma parte do caminho da pasta que quer listar. Me baseando em seu script seria apenas essa parte que entra ali no Server.MapPath "doidera\wwwroot\pegar\"'Vamos criar um recordset agora!'Ele que vai ter o trabalho de ordenar os arquivos!Set Rs = Server.CreateObject ( "ADODB.RecordSet" )'Vamos adicionar 2 campos nesse recordset!'O método Append recebe 3 parâmetros:'Nome do campo, Tipo, Tamanho (opcional)'O tipo pertence à um DataTypeEnum, e você pode conferir os tipos emRs.Fields.Append "nome", 200, 255Rs.Fields.Append "data", 7'Vamos abrir o Recordset!Rs.Open'Temos que percorrer agora todos os arquivos e jogar na nossa tabela virtual!For Each Arquivo In ObjPasta.FilesRs.AddNewRs.Fields("nome").Value = Arquivo.NameRs.Fields("data").Value = Arquivo.DateLastModifiedNext'Todos os arquivos no recordset, agora vamos ordená-lo!'Da maior data para a menor!Rs.Sort = "data desc" ' DESC para descentende e ASC para ascendente'Pronto! Agora temos os arquivos todos em ordem em nosso recordset! Vamos exibi-los!Rs.MoveFirstWhile Not Rs.EoFResponse.Write "<img src=""images/" & rs.fields("nome").value & """><br>"Response.Write "Data de Modificação: " & rs.fields("data").valueResponse.Write "<p>"Rs.MoveNextWend'Fechando os objetos!Rs.CloseSet Rs = NothingSet objPasta = NothingSet objFSO = Nothing%></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionando está pois fiz um teste local.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>

<body>
<%
'Primeiro vamos abrir um objeto FSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

'Agora pegamos a pasta com as imagens!
Set objPasta = objFSO.GetFolder(Server.Mappath("../testeado")) 'AQUI - você deve colocar apenas uma parte do caminho da pasta que quer listar. Me baseando em seu script seria apenas essa parte que entra ali no Server.MapPath "doidera\wwwroot\pegar\"

'Vamos criar um recordset agora!
'Ele que vai ter o trabalho de ordenar os arquivos!
Set Rs = Server.CreateObject("ADODB.RecordSet")

'Vamos adicionar 2 campos nesse recordset!
'O método Append recebe 3 parâmetros:
'Nome do campo, Tipo, Tamanho (opcional)
'O tipo pertence à um DataTypeEnum, e você pode conferir os tipos em
Rs.Fields.Append "nome", 200, 255
Rs.Fields.Append "data", 7

'Vamos abrir o Recordset!
Rs.Open

'Temos que percorrer agora todos os arquivos e jogar na nossa tabela virtual!
For Each Arquivo In ObjPasta.Files
Rs.AddNew
Rs.Fields("nome").Value = Arquivo.Name
Rs.Fields("data").Value = Arquivo.DateLastModified
Next

'Todos os arquivos no recordset, agora vamos ordená-lo!
'Da maior data para a menor!
Rs.Sort = "data desc" ' DESC para descentende e ASC para ascendente

'Pronto! Agora temos os arquivos todos em ordem em nosso recordset! Vamos exibi-los!
Rs.MoveFirst
While Not Rs.EoF
'Response.Write "<img src=""images/" & rs.fields("nome").value & """><br>"
Response.Write rs.fields("nome").value &"<br>"
Response.Write "Data de Modificação: " & rs.fields("data").value
Response.Write "<p>"

Rs.MoveNext
Wend

'Fechando os objetos!
Rs.Close
Set Rs = Nothing

Set objPasta = Nothing
Set objFSO = Nothing
%>
</body>
</html>

Repare que na linha do GetFolder:

Set objPasta = objFSO.GetFolder(Server.Mappath("../testeado"))

Você não vai colocar o caminho completo da pasta e sim apenas o nome dela. Testa alterando e poste novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi salgado , funcionou pereitamente porem não está licado para poderem fazer o download e aparece tudo da pasta queria saber se tem como listar apenas os arquivos quie eu indiar tentei colocar esse script abaixo mas deu erro. você pode meajudar com isso. Ficaria agradecida!

 

onde eu coloco esse script??

 

<% FOR EACH file IN pasta.Files if Right(file.name,4) = ".wma" OR Right(file.name,4) = ".wmv" then%><tr><td align="right"><div align="center"><a href="<%=file.name%>"><LI><%=file.name%></a></div></td></tr> <%end ifnext%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

não costumo nem gosto muito, mas segue com as alterações:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>

<body>
<%
'Primeiro vamos abrir um objeto FSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

'Agora pegamos a pasta com as imagens!
Set objPasta = objFSO.GetFolder(Server.Mappath("../testeado")) 'AQUI - você deve colocar apenas uma parte do caminho da pasta que quer listar. Me baseando em seu script seria apenas essa parte que entra ali no Server.MapPath "doidera\wwwroot\pegar\"

'Vamos criar um recordset agora!
'Ele que vai ter o trabalho de ordenar os arquivos!
Set Rs = Server.CreateObject("ADODB.RecordSet")

'Vamos adicionar 2 campos nesse recordset!
'O método Append recebe 3 parâmetros:
'Nome do campo, Tipo, Tamanho (opcional)
'O tipo pertence à um DataTypeEnum, e você pode conferir os tipos em
Rs.Fields.Append "nome", 200, 255
Rs.Fields.Append "data", 7

'Vamos abrir o Recordset!
Rs.Open

'Temos que percorrer agora todos os arquivos e jogar na nossa tabela virtual!
For Each Arquivo In ObjPasta.Files
If Right(Arquivo.name,4) = ".wma" OR Right(Arquivo.name,4) = ".wmv" Then
	Rs.AddNew
	Rs.Fields("nome").Value = Arquivo.Name
	Rs.Fields("data").Value = Arquivo.DateLastModified
End If
Next

'Todos os arquivos no recordset, agora vamos ordená-lo!
'Da maior data para a menor!
Rs.Sort = "data desc" ' DESC para descentende e ASC para ascendente

'Pronto! Agora temos os arquivos todos em ordem em nosso recordset! Vamos exibi-los!
Rs.MoveFirst
While Not Rs.EoF
'Response.Write "<img src=""images/" & rs.fields("nome").value & """><br>"
Response.Write "<a href="""& rs.fields("nome").value &""">"& rs.fields("nome").value &"</a><br>"
Response.Write "Data de Modificação: " & rs.fields("data").value
Response.Write "<p>"

Rs.MoveNext
Wend

'Fechando os objetos!
Rs.Close
Set Rs = Nothing

Set objPasta = Nothing
Set objFSO = Nothing
%>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi gente mais uma vez estou pedindo socorro a vocês, passei uma semana certinha. quebrando cabeça com isso. Vamos ao assunto:

 

Eu tenho esse script asp que lista o conteudo do dir, e gera uma página tipo galeria de fotos. O problema é que ele não está colocando e ordem de postagem os diretorios. Gostaria que ele colocasse na ordem os diretorios tipo

 

diretorio fotos 01

diretorio fotos 02

 

pra quando a pessoa clicar abrir a pagina com as fotos , as fotos não precisão está na ordem. apenas os dir.

 

Segue ocódigo

 

<%'########################################'# AutoFotoAlbum 1.0'#'# © 2001 WoschNet, Osterhofen'# www.woschnet.com'########################################'########################################'# Variablen definieren'########################################'# Anzahl der Bilder nebeneinanderbildzahl = 2'# Navibreitenavitabellenbreite = 700'# Zellenabstandnavispacing = 2'# Zellenauffüllungnavipadding = 2'# Rahmenbreitenavirahmenbreite = 2'# Rahmenfarbenavirahmenfarbe = "#FFFFFF"'# Farbe Zellenhintergrundnavihgfarbe = "#ffffff"'# Albumbreitebildtabellenbreite = 500'# Zellenabstandbildspacing = 2'# Zellenauffüllungbildpadding = 2'# Hintergrundfarbehintergrundfarbe = "#000097"'# Standardschriftartstandardschriftart = "Tahoma,Verdana,Arial"'# Standardschriftgrößestandardschriftgroesse = 12 'in Pixel'# Standardschriftfarbestandardschriftfarbe = "#000000"'# Schriftart des Navigations Linkslinkschriftart = "Tahoma,Verdana,Arial"'# Schriftgröße des Navigations Linkslinkschriftgroesse = 12 'in Pixel'# Schriftfarbe des Navigations Linkslinkschriftfarbe = "#99CD00"'########################################%><html><head><title>Galeria de Fotos </title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css"><!--body {  font-family: <% = standardschriftart %>; font-size: <% = standardschriftgroesse %>px; color: <% = standardschriftfarbe %>}a {  font-family: <% = linkschriftart %>; font-size: <% = standardschriftgroesse %>px; color: <% = standardschriftfarbe %>}a:hover {  font-family: <% = linkschriftart %>; font-size: <% = standardschriftgroesse %>px; color: <% = standardschriftfarbe %>}a:visited {  font-family: <% = linkschriftart %>; font-size: <% = standardschriftgroesse %>px; color: <% = standardschriftfarbe %>}--></style></head><body leftmargin="0" topmargin="0"><div align="center"><table><tr>	<td><%'########################################'# Ab hier nichts mehr ändern !'########################################Dim bildpfad, bildcount' aktuellen Ordner auslesenstrCurFolder = Request.QueryString("level")If len(strCurFolder) = 0 Then	strPath = "."	bildpfad = ""Else	strPath = strCurFolder		' Bildpfad bearbeiten	bildpfad = RIGHT(strPath, len(strPath) - 2)End Ifset objFS = Server.CreateObject("Scripting.FileSystemObject")set objFolder = objFS.GetFolder(Server.MapPath(strPath))' Navigations Links erstellen%><table width="<% = navitabellenbreite %>" align="center" cellpadding="<% = navipadding %>" cellspacing="<% = navispacing %>" bordercolor="<% = navirahmenfarbe %>" border="<% = navirahmenbreite %>">  <%for each strFolder in objFolder.SubFolders	' versteckte Ordner ausschließen	If left(strFolder.Name, 1) <> "-" Then%>  <tr>			<td bgcolor="<% = navihgfarbe %>" align="left"><li><strong><a href="album.asp?level=<% = strPath %>\<% = Server.URLEncode(strFolder.Name) %>" target="_blank">	  <% = strFolder.Name %>	  </a></strong><br>	</td>	</tr><%	End Ifnext%></table><table width="700" bgcolor="silver" border="0" align="center" cellspacing="<% = bildspacing %>" cellpadding="<% = bildpadding %>">	<tr><%' Bilder anzeigen die im gewählten Ordner liegenbildcount = 1For each bild in objFolder.Files	bildExtension = right(bild.Name, 3)	If bildExtension = "gif" or bildExtension = "JPG" or bildExtension = "png" Then%>		<td align="center" width="700" bgcolor="silver" valign="top"><img src="<% = bildpfad %>/<% = bild.Name %>" width="350" border="4"><%	End If		If bildcount = bildzahl Then%></td>	</tr>	</table></td></tr></table><%bildcount = 1End If		bildcount = bildcount + 1next%></div></body></html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Maria, você já abriu um tópico com um assunto desse, continue nesse mesmo apesar de ser um novo problema, continua no mesmo assunto ok?

 

Continua aqui!!!

 

Tópico Mesclado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.