Avatar billede claust Nybegynder
13. december 2000 - 13:02 Der er 7 kommentarer og
1 løsning

slette flere filer med FileSystemObject

Hej,

forsøger at slette flere filer på én gang med FileSystemObject.....  jeg har succes med én fil på denne måde;

dim delsti2, FSO2
   
        sql = \"SELECT * FROM BILLEDDATABASE WHERE id = \"&Request.QueryString(\"id\")&\"\"
        Set rs_tmp = conn.execute(sql)
       
        if not (rs_tmp.eof) then
                delsti = Server.MapPath(\"/images/\"&rs_tmp(\"coverpic\"))
            Set FSO = Server.CreateObject(\"Scripting.FileSystemObject\")
                FSO.DeleteFile(delsti)
            Set FSO = nothing
            Set rs_tmp = nothing
        end if


men nu vil jeg have den samme bygget om til 4 filer - hvordan gør jeg det ?.....syntes jeg har prøvet alt uden held....

claus
Avatar billede claust Nybegynder
13. december 2000 - 13:03 #1
arh, dim sætningen hedder selvfølgelig 

dim delsti, FSO

men det ændrer ikke på mit spørgsmål ;-) (bare en lille detalje)
Avatar billede tigerdyr Nybegynder
13. december 2000 - 14:07 #2
et loop ?
Smid filnavnene i et array, dim og redim (preserve) arrayet efterhånden som du fylder filnavne i det og fjerner de filnavne fra arrayet som er slettet og kør så dette loop igennem din FSO delete sætning.
Avatar billede claust Nybegynder
13. december 2000 - 14:20 #3
ehhhhh. du har helt sikkert ret, men jeg er stået af, fatter minus, jeg bøjer mig i støvet ;-)

kan vi tage den på den pædagogiske måde - altså til os mindre bemidlede ?

takker,
Claus
Avatar billede tigerdyr Nybegynder
13. december 2000 - 14:31 #4
okay, når du vil slette flere filer kender du jo åbenbart filernes filnavne...
Hvis du laver et Array og lægger filnavne heri, kan du jo lave en løkke der kører fra sidste plads i dit array til første plads i dit array og sletter dem en af gangen.
Avatar billede claust Nybegynder
13. december 2000 - 14:53 #5
i denne stil, eller er det helt forkert ? Jeg er *ikke* særlig erfaren i loops ;-)


sql = \"SELECT * FROM BILLEDDATABASE WHERE id = \"&Request.QueryString(\"id\")&\"\"
        Set rs_tmp = conn.execute(sql)
       
            if not (rs_tmp.eof) then
               
                dim filer
                filer = array(\"&rs_tmp(\"coverpic\"), &rs_tmp(\"menupic1\"), &rs_tmp(\"menupic2\"), &rs_tmp(\"menupic3\"))
                   
                ????loop start???????
               
                    delsti2 = Server.MapPath(\"/images/\"&filer))
                    Set FSO2 = Server.CreateObject(\"Scripting.FileSystemObject\")
                    FSO2.DeleteFile(delsti2)
               
                ????loop slut??????   
               
                Set FSO2 = nothing
                Set rs_tmp = nothing
                   
            end if
Avatar billede netsrac Praktikant
13. december 2000 - 16:46 #6
sql = \"SELECT * FROM BILLEDDATABASE WHERE id = \"&Request.QueryString(\"id\")&\"\"
        Set rs_tmp = conn.execute(sql)
       
            if not (rs_tmp.eof) then


filer = rs_tmp(\"coverpic\") & \"|\" & rs_tmp(\"menupic1\") & \"|\" & rs_tmp(\"menupic2\") & \"|\" & rs_tmp(\"menupic3\"))
deletefiles = split(filer, \"|\")

Set FSO2 = Server.CreateObject(\"Scripting.FileSystemObject\")
delsti2 = Server.MapPath(\"/images/\")

for each item in deletefiles
tmpfile = delsti2 & item
FSO2.deletefile(tmpfile)
next


                Set FSO2 = nothing
                Set rs_tmp = nothing
                   
            end if
Avatar billede claust Nybegynder
13. december 2000 - 17:07 #7
hey,

tak for hjælpen - men den sletter kun den første fil (coverpic) fra serveren (??)

samme problem som jeg har haft med andre kombinationer også...

Claus
Avatar billede netsrac Praktikant
13. december 2000 - 17:32 #8
Hm...så prøv med
---------------------------------

sql = \"SELECT * FROM BILLEDDATABASE WHERE id = \"&Request.QueryString(\"id\")&\"\"
        Set rs_tmp = conn.execute(sql)
       
            if not (rs_tmp.eof) then


filer = rs_tmp(\"coverpic\") & \"|\" & rs_tmp(\"menupic1\") & \"|\" & rs_tmp(\"menupic2\") & \"|\" & rs_tmp(\"menupic3\"))
deletefiles = split(filer, \"|\")

Set FSO2 = Server.CreateObject(\"Scripting.FileSystemObject\")
delsti2 = Server.MapPath(\"/images/\")

for each item in deletefiles
set tmpfile = fso2.getfile(delsti2 & item)
tmpfile.delete
next


                Set FSO2 = nothing
                Set rs_tmp = nothing
                   
            end if
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