Excluindo arquivos de forma inteligente ASP
Caros, por esses dias precisei gerar um arquivo PDF para o usuário baixar, mas enfrentei um problema. Ao gerar o PDF diretamente no navegador utilizando BinaryWrite e alterando o ContentType da página, encontrei muitos erros devido às configurações em navegadores distintos.
Para não depender do navegador do usuário, resolvi gerar os arquivos em uma determinada pasta no servidor, redirecionar a página para o usuário baixar o arquivo e executar uma rotina que apagasse os arquivos de tempos em tempos.
Desenvolvi essa página ASP onde determinei em constantes o “tempo de vida” dos arquivos. É necessário agendar essa rotina para ser executada no servidor.
Segue abaixo o código ASP utilizado:
<%
´Constante que determina o “tempo de vida” dos arquivos
const TEMPO_DE_VIDA = 20
´Constante que determina a unidade do “tempo de vida”
´yyyy – Year´
´q – Quarter
´m – Month
´y – Day of year
´d – Day
´w – Weekday
´ww – Week of year
´h – Hour
´n – Minute
´s – Second
const TEMPO_DE_VIDA_UN = “n”
´variável para
dim pasta
pasta = Server.MapPath(“./arquivos/”)
´Declara o File System Object
set fso = server.CreateObject(“Scripting.FileSystemObject”)
´GetFolder retorna a pasta passada por parâmetro
set fsoP = fso.getFolder(pasta)
´fsoP.files contem todos os arquivos da pasta
for each arq in fsoP.files
´Escreve na tela o nome do arquivo e sua data de criação.
Response.Write(arq.name&” – criado em “&arq.dateCreated&”.<br />”)
´Caso o “tempo de vida” do arquivo tenha passado o tempo permitido, o arquivo é deletado
if DateDiff(TEMPO_DE_VIDA_UN,arq.dateCreated,now) > TEMPO_DE_VIDA then
´Escreve na tela o nome do arquivo deletado
Response.Write(arq.name&” deletado.<br/>”)
´Deleta o arquivo
arq.Delete
end if
next
´Libera variáveis da memória
set pasta = nothing
set arq = nothing
set fsoP = nothing
set fso = nothing
%>
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Seguem alguns dos atributos do file (arq) que podem
ajudá-los no critério para exclusão dos arquivos.
Attributes (pode ser setado)
Atributos do arquivo.
Pode ser um ou mais dos seguintes valores:
0 = Arquivo normal
1 = Arquivo somente leitura
2 = Arquivo oculto
4 = Arquivo de sistema
16 = Pasta ou diretório
32 = Arquivos alterados desde o último backup
1024 = Link ou atalho
2048 = Arquivo compactado
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
DateCreated – Retorna a data e a hora em que o arquivo foi criado.
DateLastAccessed – Retorna a data e a hora em que o arquivo foi acessado.
DateLastModified – Retorna a data e a hora da última vez que o arquivo foi modificado.
Drive – Retorna a letra do drive em que o arquivo está.
Name (pode ser setado) – Nome do arquivo.
ParentFolder – Retorna o caminho complete da pasta onde o arquivo está.
Path – Retorna o caminho complete do arquivo no servidor.
Size – Retorna o tamanho, em bytes, do arquivo.
Type – Retorna o tipo do arquivo.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Abraço!
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-