Ir para conteúdo

POWERED BY:

Arquivado

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

Ronaldo Marcos

[Resolvido] selecionar arquivos por parte do nome usando FSO

Recommended Posts

Um sistema de terceiros possuem imagens e seus thumbs todos na mesma pasta, exemplo: a foto DCS0001.jpg pessou um arquivo com o nome MINI_DSC0001.jpg que é seu thumb. Tenho um sistema paralelo para listar essas imagens, mas não consegui fazer isso selecionando apenas os thumb, ou seja exibir apenas as imagens que começam com "MINI_", vi algumas coisas sobre a sintexe do FileSystemObject mas não consegui resultado. o código é o seguinte:

<%

'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("eventos\3\") )

 

'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"

 

'Pronto! Agora temos os arquivos todos em ordem em nosso recordset! Vamos exibi-los!

Rs.MoveFirst

While Not Rs.EoF

Response.Write "<img height=75 src=""eventos/3/" & 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

dentro do WHILE esta escrevendo todos

 

deve escrever apenas os que interessam a voce

 

use um simples IF dentro do laço para verificar se começam com o MINI

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, o que eu não consegui foi dizer pra ele quais eram os que começavam com MINI_. Esse é o código original, sem as tentativas que fiz.

 

dentro do WHILE esta escrevendo todos

 

deve escrever apenas os que interessam a voce

 

use um simples IF dentro do laço para verificar se começam com o MINI

Compartilhar este post


Link para o post
Compartilhar em outros sites

basicamente era isso mesmo como inicia com MINI poderia usar a funcap LEFT sem problemas

Compartilhar este post


Link para o post
Compartilhar em outros sites

[Resolvido] Obrigado Mario Monteiro e Anderson Roberto, ja tinha conseguido de outra forma, mais complicada, mas os métodos que passaram são mais "inteligentes" usei Left como sugeriu Mario Monteiro:

 

If LEFT(Arquivo.Name,5) = "MINI_" Then

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

end if

Next

Tenho que admitir que foi um pouco de preguiça postar aqui sem ter dado uma estudada melhor. Isso que sou da filosofia de primeiro fuçar antes de perguntar, porque mesmo que não descubra a resposta algumas coisas nesse caminho acaba aprendendo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É muito importante mesmo para o aprendizado a pesquisa mas fico feliz de ter conseguido e melhor ainda somado conhecimento neste processo

 

Parabens pela solução

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.