Avatar billede jss Nybegynder
11. november 2002 - 15:10 Der er 4 kommentarer og
1 løsning

FSO & DeleteFile

Hejsa

Jeg er igang med et opgave-arkiv, hvor hver opgave har sin egen filmappe. Det er filer i disse filmapper jeg ønsker mulighed for at slette. I koden nedenfor er den mappen "metode" jeg har hardcoded, men det fedeste ville være at det kunne blive dynamisk. Det jeg har indtil videre er en form, der lister filerne i mappen (her "metode") med en checkbox ud for hver fil. Det der var planen var at man kan markere de filer man ønsker at slette ved at klikke på Slet markerede filer.

Kan man det og hvordan gøres det ?

Hilsner
Janus

Lidt kode:

Dim sFso, sFolder, sFile
Set sFso = Server.CreateObject("Scripting.FileSystemObject")
Set sFolder = sFso.getFolder(Server.Mappath("../../metode"))

    Response.Write "<html><body><table>"
    Response.Write "<tr><td><p>Markér filer der ønskes slettet og klik derefter på Slet markerede filer.</td></tr>"
    Response.Write "<tr><td><p><br>Aktuel fil-oversigt:</td></tr>"
    For Each sFile In sFolder.Files
        Response.Write "<tr><td><p><form method=get action=slet_fil.asp><INPUT TYPE='checkbox' NAME='sletfil' value=' "& sFile &" '><a href=""../../metode/" & sFile.Name & """ target='_blank'>" & sFile.name & "</a></td></tr>"
    next
    Response.Write "<tr><td><p><br><input type='submit' value='Slet markerede filer'></td></tr>"
    Response.Write "</form></table>"
Avatar billede jss Nybegynder
11. november 2002 - 15:15 #1
Det skal lige tilføjes at jeg submitter formen (med GET) til filen slet_fil.asp og i denne fil har jeg arbejdet lidt med request.querystring og forsøgt at lægge indhold af querystring i et array, som jeg efterflg. har forsøgt at køre gennem et loop med DeleteFile-syntax. Det virker bare ikke ;(
Avatar billede eagleeye Praktikant
11. november 2002 - 16:03 #2
Ja du kan for hver fil angive en checkbox og give dem alle samme navn og i value skrive filnavnet..



<% for each file in en_folder %>

  <input ype="checkbox" name="fil" value="<%=file.name%>"Slet

<% next %>





O på siden som sletter kan du hende filerne sådan her, hvis sdu væler flere filer oger det en komma liste.. fil1,fil2,fil3,fil4



filer = Request.QueryString("fil")



filArr = Split (filer,",")



'Sletfilerne

for i = Lbound(filArr) to Ubound(filArr)

  fsoObjt.Deletefile "c:\blabal\" & filArr(i)

next
Avatar billede jss Nybegynder
12. november 2002 - 12:51 #3
eagleeye:
jeg er kommet et godt stykke videre med din hjælp, men der stadig lidt knas med det.

Hvis jeg feks. vælger 2 filer via checkboxes og derefter submitter formen til slet_fil.asp (med GET) som for jeg flg. querystring:
http://localhost/asp_indhold/Admin/slet_fil.asp?sletfil=Eksempel+p%E5+Conjoint-analyse.doc&sletfil=svendborg.ModelFigur.xls

og det ser godt nok ud.

Denne querystring omdanner jeg til et array og hvis jeg udskriver denne incl. sti for jeg følgende:
C:\Inetpub\wwwroot\Metode\Eksempel på Conjoint-analyse.docC:\Inetpub\wwwroot\Metode\ svendborg.ModelFigur.xls

Og her er problemet - for den første fil er stien OK, men for den anden fil er der indsneget sig et mellemrum før filnavnet og derfor får jeg en fejlside der siger at stien ikke blev fundet. Dette problem med et mellemrum opstår for alle efterflg. filer.
Den første fil, hvor sti er OK, bliver korrekt slettet inden jeg for fejlsiden.

Kode:

Dim filer,MyArray
filer = Request.QueryString("sletfil")
'MyArray = Split(filer,"&", -1, 1)
MyArray = Split(filer,",")

'Sletfilerne
set fs = CreateObject("Scripting.FileSystemObject")
for j = Lbound(MyArray) to Ubound(MyArray)
    Response.Write session("filsti") & "\" & MyArray(j)
    fs.Deletefile session("filsti") & "\" & MyArray(j)
next
Avatar billede jss Nybegynder
12. november 2002 - 13:02 #4
Det er lidt nemmere at se mellemrummet sådan her: C:\Inetpub\wwwroot\Metode\Eksempel på Conjoint-analyse.docC:\Inetpub\wwwroot\Metode\ svendborg.ModelFigur.xls
Avatar billede jss Nybegynder
12. november 2002 - 13:35 #5
eagleeye:
Jeg fandt selv ud af det: det er i split-funktionen MyArray = Split(filer,",") hvor der skulle tilføjes et mellemrum efter komma, så det bliver MyArray = Split(filer,", "). Dette fjerner mellemrummet før filnavnet i stien.

Så points til dig for at hjælpe mig på vej - nu finpudser jeg lige med lidt FileExists osv.

Hilsner
Janus
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