Avatar billede giereck Nybegynder
29. januar 2008 - 15:28 Der er 6 kommentarer og
1 løsning

sletning af filer i forhold til last modified date

Hej
Jeg har en mappe med nogle filer, hvori jeg gerne vil slette dem der ikke er blevet opdateret de seneste 14 dage.
Jeg har mit nuværende script her:

dim fs,fo,x
set fs=Server.CreateObject("Scripting.FileSystemObject")
set fo=fs.GetFolder("c:\sites\ASP test\uploaded\")

for each x in fo.files
  fs.DeleteFile("c:\sites\ASP test\uploaded\" & x.Name)
next

set fo=nothing
set fs=nothing

Dog sletter scriptet her alle filer. Kan de lade sig gøre kun at slette de filer der er ældre end 14 dage?

På forhånd tak!
29. januar 2008 - 17:36 #1
Måske inspiration herfra -> http://www.eksperten.dk/spm/393648 !
Avatar billede giereck Nybegynder
29. januar 2008 - 20:28 #2
Jeg havde nu håbet på noget lidt mindre kompliceret :)
Avatar billede giereck Nybegynder
29. januar 2008 - 20:28 #3
Men tak for linket :)
29. januar 2008 - 20:58 #4
... så ka' jeg så spørge dig om du har noget bidrag til denne -> http://www.eksperten.dk/spm/815313
(Sorry for Spam *S*)
29. januar 2008 - 20:58 #5
... og så følger jeg selv med her ...
Avatar billede giereck Nybegynder
30. januar 2008 - 09:37 #6
Jeg fik det til at virke med kodestumper stjålet fra det link du gav mig http://www.eksperten.dk/spm/815313
Tak for det :) Send et svar så får du point.
Her er scriptet:

Dim objFSO
Dim objFolder, objFiles, sFolderName
Dim Folder, File
Dim ret
Dim MaxDaysOld
Dim FilesDeleted

FilesDeleted = 0
sFolderName = "c:\sites\ASP test\uploaded\"
MaxDaysOld = 3
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(sFolderName)
Set objFiles = objFolder.Files

For Each File In objFiles
  ret = DaysOld(File.Path)
    ' If the file older then the wanted # of days then delete it.
    If ret > MaxDaysOld Then
        objFSO.DeleteFile File, True
        FilesDeleted = FilesDeleted + 1   
    End If
Next
Response.Write ("Number of files deleted: ")
Response.Write (FilesDeleted)




'----====DaysOld(Path)====----
Function DaysOld(sFileName)

Dim objFile

On Error Resume Next

Set objFile = objFSO.GetFile(sFileName)
Call CheckError

' Return the difference in days.
DaysOld = Int(Now() - objFile.DateLastModified)

End Function
'----========----
30. januar 2008 - 19:57 #7
Ping...
(Det var et [svar])
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester