Avatar billede lenn Nybegynder
22. april 2002 - 12:59 Der er 15 kommentarer og
1 løsning

Delete

Jeg er ved at lave et script, der kan slette én fil af gangen i én bestemt mappe...
Jeg er gået lidt i stå, håber en eller anden kan hjælpe mig videre..!

her er koden:
<% If Request.Querystring <> "" then
Dim arrFile
    arrFile = Split(Request.querystring,",")
mappe = arrFile(0)
fil = arrFile(1)
start = mappe
Select Case start
    Case "id=billeder"
    session("location") = "../billeder/"
    Case "id=banner"
    session("location") = "../billeder/banner/"
    Case "id=dokumenter"
    session("location") = "../dokumenter/"
end select
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath(session("location")))
Set objFiler = objFolder.Files
For Each fil In objFiler
fil.Delete
Next

... den skal kun slette én - den valgte
Avatar billede doc404 Novice
22. april 2002 - 13:08 #1
Her er et eksempel på hvordan du sletter en fil - er det sådan noget du skal bruge???

<%
dim filesys
Set filesys = CreateObject("Scripting.FileSystemObject")
filesys.CreateTextFile "c:\somefile.txt", True
If filesys.FileExists("c:\somefile.txt") Then
  filesys.DeleteFile "c:\somefile.txt"
  Response.Write("File deleted")
End If
%>
Avatar billede eagleeye Praktikant
22. april 2002 - 13:27 #2
Normat er querystingen adskildt med & og ikke ,

arrFile = Split(Request.querystring,"&")
Avatar billede lenn Nybegynder
22. april 2002 - 13:41 #3
det virker stadig ikke
Avatar billede lenn Nybegynder
22. april 2002 - 13:55 #4
Det her virker...

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath(session("location")))
del = session("location")&fil
objFSO.DeleteFile "c:\inetpub\wwwroot\nesdam\billeder\ariel.gif"

Det her gør ikke - del indeholder fx../billeder/ariel.gif
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath(session("location")))
del = session("location")&fil
objFSO.DeleteFile del

Hvorfor ???
Avatar billede eagleeye Praktikant
22. april 2002 - 14:00 #5
Hvordan linker du til filen... ?  jeg kan se du bruge querystring. så hvordan ser linket ud:

side.aps?id=billeder,fil1.gif&id=billeder,fil2.gif

eller???
Avatar billede lenn Nybegynder
22. april 2002 - 14:02 #6
Jeg køre mappen billeder igennem og har flg. link...

slet = "billeder," & file.name %>
<a href=delfile.asp?id=<%= slet %>>
[Slet.... ]</a>
Avatar billede eagleeye Praktikant
22. april 2002 - 17:41 #7
Prøv med denne kode:

If Request.Querystring("id") <> "" then
Dim arrFile
arrFile = Split(Request.querystring("id"),",")
mappe = arrFile(0)
fil = arrFile(1)
Select Case Lower(mappe)
    Case "billeder"
      session("location") = "../billeder/"
    Case "banner"
      session("location") = "../billeder/banner/"
    Case "dokumenter"
      session("location") = "../dokumenter/"
end select
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder(Server.MapPath(session("location")))
Set objFiler = objFolder.Files
For Each fil In objFiler
  fil.Delete
Next
Avatar billede eagleeye Praktikant
22. april 2002 - 17:43 #8
How det hedder ikke som jeg skrev Lower men LCase udskift denne:
Select Case Lower(mappe)

Med:
Select Case LCase(mappe)
Avatar billede lenn Nybegynder
22. april 2002 - 19:36 #9
Eagleeye
Jeg prøver i morgen og vender lige tilbage...
Avatar billede lenn Nybegynder
23. april 2002 - 08:35 #10
eagleeye-->
tja - det virker, men meningen er jo at den kun skal slette den ene fil der ligger i arrFile(1) eller variablen Fil. Koden til at slette én fil kan jeg ikke finde nogen steder, men koder til at slette alle filer i en mappe, kan jeg ikke finde...
Avatar billede eagleeye Praktikant
23. april 2002 - 08:41 #11
Jeg har brugt den slette del af koden som du også har i dit spm.... Hvis du bare skal slette en filen så prøv dette:

If Request.Querystring("id") <> "" then
Dim arrFile
arrFile = Split(Request.querystring("id"),",")
mappe = arrFile(0)
fil = arrFile(1)
Select Case Lower(mappe)
    Case "billeder"
      session("location") = "../billeder/"
    Case "banner"
      session("location") = "../billeder/banner/"
    Case "dokumenter"
      session("location") = "../dokumenter/"
end select
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(session("location") & fil) Then
  objFSO.DeleteFile session("location") & fil
End If
Avatar billede lenn Nybegynder
23. april 2002 - 08:50 #12
..det virker ikke - den melder ikke fejl nogen steder - men filen er der endnu...
Avatar billede eagleeye Praktikant
23. april 2002 - 08:53 #13
hvis du prøver at udskrive stine + filnavn passer det så, inden den skal slettes:

Response.Write session("location") & fil
Set objFSO = Server.CreateObject
Avatar billede eagleeye Praktikant
23. april 2002 - 08:54 #14
det kan være der skal en Server.Mappath ind...

If objFSO.FileExists(Server.Mappath(session("location") & fil)) Then
  objFSO.DeleteFile Server.Mappath(session("location") & fil)
End If
Avatar billede lenn Nybegynder
23. april 2002 - 08:55 #15
../billeder/ariel2.gif

Ja - det ser jo rigtigt nok ud!!!
Avatar billede lenn Nybegynder
23. april 2002 - 08:57 #16
ja - det skulle der takker 100 gange, det virker upåklageligt, points til dig...
Takker også for de øvrige indlæg.
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