Avatar billede dramsgaard Nybegynder
21. december 2004 - 12:43 Der er 13 kommentarer og
1 løsning

delete fil i mappe

jeg har op til 5 billeder i en mappe, som hedder 1.jpg , 2.jpg osv
jeg skal bruge en "slet" funktion, som hvis f.eks billede  3.jpg bliver slettet, så skal billede 4 og 5 (hvis de findes) ændre deres navn til 3 og 4, sådan så der ikke er huller i rækken.

er der nogen der har et forslag til hvordan man kan lave det?
Avatar billede nordclc Nybegynder
21. december 2004 - 12:58 #1
Hvad med alle de links du måtte have til billederne, bliver de så ikke forkerte?
Avatar billede dramsgaard Nybegynder
21. december 2004 - 13:01 #2
nej det betyder ikke noget
Avatar billede nordclc Nybegynder
21. december 2004 - 13:02 #3
OK, jeg skriver lige lidt kode til dig.
Avatar billede nordclc Nybegynder
21. december 2004 - 13:59 #4
Husk du skal have skrive og slette rettigheder til folderen, ellers virker det ikke. Desuden skal du rette DinFolder (3 steder) og i variablen v_slettet_fil skal du skrive det filnavn på den fil du har slettet!

-------------------------------------------------------------------------------------

<%
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  Set fsoren=server.createobject("scripting.filesystemobject")

  Set objFolder = fso.GetFolder(Server.Mappath("DinFolder"))

  v_slettet_fil = "4.jpg"
  v_slettet_nr  = Left(v_slettet_fil,instr(v_slettet_fil,".")-1)
 
  For Each file in objFolder.Files
    v_nr = Left(file.Name,instr(file.Name,".")-1)
    if cint(v_nr) > cint(v_slettet_nr) then
      fsoren.MoveFile Server.MapPath("DinFolder/" & file.Name), Server.MapPath("DinFolder/" & v_nr-1 & ".jpg")
    end if
  Next
%>
Avatar billede dramsgaard Nybegynder
21. december 2004 - 14:12 #5
hmm okay prøver det lige

men hvorfor creater du FSO 2 gange med både fso og fsoren?
Avatar billede nordclc Nybegynder
21. december 2004 - 14:15 #6
Uvidenhed. Jeg var i tvivl om hvor vidt jeg kunne benytte den samme til at loope i folderen og til at move/rename filer med.
Avatar billede dramsgaard Nybegynder
21. december 2004 - 15:37 #7
det endte med at se sådan ud:
---------------------------

  if request.QueryString("action")="delete" then
  varOut="<span class=""fejl"">Filen kunne ikke findes!</span>"
  Set fso = Server.CreateObject("Scripting.FileSystemObject")
      sti=Server.Mappath("upload/pic/dyr/"&request.QueryString("dyr"))
     
      if fso.FileExists(sti&"/"&request.QueryString("pic")) then
        slettet_fil=request.QueryString("pic")
        v_slettet_nr  = Left(slettet_fil,instr(slettet_fil,".")-1) 
         
          fso.DeleteFile(sti&"/"&slettet_fil)
         
          Set objFolder = fso.GetFolder(sti)

          For Each file in objFolder.Files
            v_nr = Left(file.Name,instr(file.Name,".")-1)
            if cint(v_nr) > cint(v_slettet_nr) then
              fso.MoveFile sti&"/" & file.Name, sti &"/"& v_nr-1 & ".jpg"
            end if
          Next
          varOut="<span class=""succes"">Billedet er nu slettet!</span>"
      end if
  Set fso = Nothing
  End if

-------
kan man hvis man f.eks trykker på et link noget i stil med "2.jpg-Ned" så bliver 2.jpg til 3.jpg og tidligere 3.jpg bliver til 2.jpg

Det er vel lidt i stil med det andet...hvis du kan klare den skal jo nok smide lidt ekstra point i puljen
Avatar billede nordclc Nybegynder
21. december 2004 - 15:38 #8
Forstår jeg dig ret, du vil gerne bytte rundt på de 2 filnavne?
Avatar billede dramsgaard Nybegynder
21. december 2004 - 15:42 #9
ja når billederne bliver udskrevet, bliver de udskrevet i rækkefølgen 1,2,3,4,5
jeg havde tænkt noget i stil med:
BILLEDE1 ned>, <op BILLEDE2 ned> osv.
Avatar billede nordclc Nybegynder
21. december 2004 - 15:51 #10
Det kræver at der aldrig er brud på rækkefølgen
Avatar billede dramsgaard Nybegynder
21. december 2004 - 15:58 #11
yep det er der heller ikke, min upload, og den delete funktion der lige er blevet lavet sørger for at der ikke kommer brud på rækken. Det eneste der variere er hvor mange filer der er, men det kan man vel kontrollere med Count
Avatar billede nordclc Nybegynder
21. december 2004 - 16:00 #12
Jeg har ikke testet det, men det må være sådan noget lignende for at skifte ned. V_FILNAVN er det filnavn som skal ændres, og V_GEM er et midlertidigt filnavn og V_SKIFTMED er det filnavn som der skal byttes navn med.
----------------------------------------------------------------------------------
<%

  Set fso = Server.CreateObject("Scripting.FileSystemObject")
  sti=Server.Mappath("upload/pic/dyr/"&request.QueryString("dyr"))

  v_filnavn = "3.jpg"
  v_gem    = "abc.jpg"     
  v_nr = Left(v_filnavn,instr(v_filnavn,".")-1)
  v_skiftmed = cstr(cint(v_nr)-1) & ".jpg"
  fso.MoveFile sti&"/" & v_filnavn, sti &"/"& v_nr-1 & v_gem
  fso.MoveFile sti&"/" & v_skiftmed, sti &"/"& v_nr-1 & v_filnavn
  fso.MoveFile sti&"/" & v_gem, sti &"/"& v_nr-1 & v_skiftmed

  Set fso = Nothing
%>
Avatar billede dramsgaard Nybegynder
21. december 2004 - 18:46 #13
jeg kunne ik lige få dit sidste script til at virke, men jeg har alvet noget andet i stedet...men mange tak for hjælpen : )
Avatar billede nordclc Nybegynder
21. december 2004 - 21:05 #14
OK, takker for points'ne

//nordclc
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