Avatar billede Slettet bruger
01. marts 2005 - 14:10 Der er 1 kommentar og
3 løsninger

Slet fil fra mappen

Hej
Jeg har dette script som viser alle filer i en mappe, kan jeg tilføje slettefelt, således at hvis man markerer udfor den pågældende fil bliver den slettet ?
<html>

<head>
<title>FilLister</title>
</head>

<body>

<p>&nbsp;</p>

<p><strong><font color="#000000"><small>&nbsp;<%
CONST DIRECTORY="/"
CONST FILE_NAME=0
CONST FILE_EXT=1
CONST FILE_TYPE=2
CONST FILE_SIZE=3
CONST FILE_CREATED=3
CONST FILE_ACCESSED=5
Skriv=1
req=Request("sortBy")
If Len(req)<1 Then sortBy=0 Else sortBy=CInt(req)
req=Request("priorSort")
If Len(req)<1 Then priorSort=-1 Else priorSort=CInt(req)
If sortBy=priorSort Then
    reverse=true
    priorSort=-1
Else
    reverse=false
    priorSort=sortBy
End If
dim strPathInfo, strPhysicalPath,objFSO, objFile, objFileItem, objFolder, objFolderContents
    strPathInfo=Request.ServerVariables("PATH_INFO")
    strPhysicalPath=Server.MapPath(strPathInfo)
    Set objFSO=CreateObject("Scripting.FileSystemObject")
    set objFile=objFSO.GetFile(strPhysicalPath)
    set objFolder=objFile.ParentFolder
    set objFolderContents=objFolder.Files
Set curFiles=objFolder.Files
Dim theFiles()
ReDim theFiles(500)
currentSlot=-1
For Each fileItem in curFiles
    strFileTitle=fileItem.Name
    strFileName=fileItem.Name
    fext=InStrRev(strFileName, "." )
    If fext < 1 Then fext = "" Else fext = Mid(strFileName,fext+1)
    ftype=fileItem.Type
    fsize=fileItem.Size
    fcreate=fileItem.DateCreated
    fcreateSlut=instr(fcreate," ")
    fcreate=left(fcreate,fcreateSlut)
    fmod=fileItem.DateLastModified
    fmodSlut=instr(fmod," ")
    fmod=left(fmod,fmodSlut)
    faccess=fileItem.DateLastAccessed
    txtTitleStartTag=Server.HTMLEncode("<TITLE>")
    txtTitleEndTag=Server.HTMLEncode("</TITLE>")
    txtPathtoFile=objFolder & "\"&fileitem.name
    if fext="htm" or fext="html" then
        Set textStream=objFSO.OpenTextFile(txtPathtoFile)
        Do While NOT textStream.AtEndOfStream
            txtLine=UCase(Server.HTMLEncode(textStream.ReadLine))
            if Instr(1,txtLine,txtTitleStartTag,1) then
                strFileTitle=Replace(txtLine, txtTitleStartTag,"",1,1,1)
            end if
            if Instr(1,strFileTitle, txtTitleEndTag,1) then
                strFileTitle=Replace(strFileTitle, txtTitleEndTag,"",1,1,1)
            Exit Do
            end if
        Loop
    end if
    ftitle=lcase(strFileTitle)
    fname=lcase(strFileTitle)
    fnameLenght=len(fname)
    fnamePunkt=fnameLenght-3
    if mid(fname,fnamePunkt,1)="." then
        fnameSlut=instrRev(fname,".")
        If fnameSlut>0 Then fname = left(fname,fnameSlut-1)
    end if
    fname="<a href='"&strFileName&"'>"&fname&"</a>"
    currentSlot=currentSlot+1
    If currentSlot>UBound(theFiles) Then
        ReDim Preserve theFiles(currentSlot+99)
    End If
    theFiles(currentSlot)=Array(fname,fext,fcreate,fmod)
Next
fileCount=currentSlot
ReDim Preserve theFiles( currentSlot )
If VarType(theFiles(0)(sortBy))=8 Then
    If reverse Then kind=1 Else kind=2
Else
    If reverse Then kind=3 Else kind=4
End If
For i=fileCount TO 0 Step -1
    minmax=theFiles(0)(sortBy)
    minmaxSlot=0
    For j=1 To i
        Select Case kind
        Case 1
            mark=(strComp(theFiles(j)(sortBy),minmax,vbTextCompare)< 0)
        Case 2
            mark=(strComp(theFiles(j)(sortBy),minmax,vbTextCompare)>0)
        Case 3
            mark=(theFiles(j)(sortBy)<minmax)
        Case 4
            mark=(theFiles(j)(sortBy)>minmax)
        End Select
        If mark Then
            minmax=theFiles(j)(sortBy)
            minmaxSlot=j
        End If
    Next
    If minmaxSlot<>i Then
        temp=theFiles(minmaxSlot)
        theFiles(minmaxSlot)=theFiles(i)
        theFiles(i)=temp
    End If
Next
%> </small></font></strong></p>

<form Name="doSort" Method="Get">
  <input type="hidden" name="priorSort" value="<%=priorSort %>"><input type="hidden"
  name="sortBy" value="-1">
</form>

<table Border="1" CellPadding="5" bgcolor="#E6E6E6" bordercolor="#FFFFFF" cellspacing="0"
width="500">
  <tr>
    <td colspan="4" bgcolor="#AFB9CA"><strong><font color="#000000">filer<br>
    <em>Klik på filen under Titel for at åbne filen.</em></font></strong></td>
  </tr>
  <tr>
    <td><small><font color="#000000"><strong><a HREF="java script:reSort(0);">Titel</a> </strong></font></small></td>
    <td><small><font color="#000000"><strong><a HREF="java script:reSort(1);">Type</a> </strong></font></small></td>
    <td><small><font color="#000000"><strong><a HREF="java script:reSort(2);">Oprettet</a> </strong></font></small></td>
    <td><small><font color="#000000"><strong><a HREF="java script:reSort(3);">Sidst Opd</a> </strong></font></small></td>
  </tr>
<%
For i=0 To fileCount
    if Skriv=1 then
        %>
  <tr>
<%
    end if
    Skriv=0
    For j=0 To UBound(theFiles(i))
            FilType=theFiles(i)(1)
            Select Case FilType
                Case "xls" skriv=1
                Case "doc" skriv=1
                Case "htm" skriv=1
                Case "html" skriv=1
              Case "pdf" skriv=1

            End Select
        if Skriv=1 then
        %>
    <td><%=theFiles(i)(j)%>
</td>
<%
        end if
    Next
    if Skriv=1 then
    %>
  </tr>
<%
    end if
Next
%>
</table>

<p><font color="#000000">&nbsp;</font> </p>
</body>
</html>
Avatar billede medions Nybegynder
01. marts 2005 - 14:35 #1
ja, det kan du vel godt :-)
-Hvis vi fx. siger du vil bruge checkboxe til at markere ud for filnavnene som du vil have slettet.

Så sætter du det sådan op at valuen på din checkbox, bliver lig med navnet på filen.

Når du så klikker på Submit, så spørger du først om, der er en value i din checkbox, hvis der er det, så slet den fil, som din value indeholder...

//>Rune
Avatar billede medions Nybegynder
01. marts 2005 - 14:36 #2
Du sletter en fil således:
<%
dim fs
Set fs=Server.CreateObject("Scripting.FileSystemObject")
fs.CreateTextFile("c:\test.txt",True)
if fs.FileExists("c:\test.txt") then
  fs.DeleteFile("c:\test.txt")
end if
set fs=nothing
%>

//>Rune
Avatar billede steffansteffan Nybegynder
02. marts 2005 - 08:49 #3
Måske denne her giver lidt mere mening for dig?

<%
' Variabel til filen
strFil = "test.asp"

' Koden der sletter og finder filen
Set fso = CreateObject("Scripting.FileSystemObject")
Set offer = fso.GetFile(Server.MapPath("../files/"&strFil))
offer.Delete

' Udskriver
Response.Write ("Filen er nu slettet fra systemet")
%>
Avatar billede Slettet bruger
02. marts 2005 - 09:15 #4
Tusind tak begge to, håber det er ok med delingen
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