Jag behöver hjälp med hur man använder FSO för att radera filer på en server. <code> Jag får inget felmeddelande men det funkar fortfarande inte även efter jag byt till din kod... Som ser ut så här nu: Jag hänger inte riktigt med i din kod här och jag tror inte att fileName innehåller något så därför tas inte någon fil bort.FSO problem...
Min kod ser ut så här:
<code>
<%
radio = Request.Form("radio")
Set strDelete = CreateObject("Scripting.FileSystemObject")
Set strFil = strDelete.GetFile("Server.MapPath("radio")")
strFil.delete
strFil.close
Response.Write "radio"
%>
</code>
Men den funkar inte....
//JWSv: FSO problem...
fileName = "oneFile.txt"
fileToDelete = server.MapPath("../biblio/") & fileName
Set fs = Server.CreateObject("scripting.fileSystemObject")
if fs.FileExists(fileToDelete ) Then
fs.DeleteFile(fileToDelete )
end if
</code>
Funkar för mig.
Får du något felmeddelande?
//PutteSv: FSO problem...
<code>
radio = Request.Form("radio")
radio = split(radio,"/")
fileName = radio(ubound(radio))
'response.Write("fileName = " & fileName)
fileToDelete = Server.MapPath("/admin/admin_filer/aktuellt/") & fileName
Set fs = Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists(fileToDelete)Then
fs.DeleteFile(fileToDelete)
end if
Response.Write fileName & " har raderats ur databasen!"
</code>
Varför funkar det inte?
//JWSv: FSO problem...
Jag antar att det endast skickas med sökväg till 1 fil i radio. Då tycker jag att du går över ån för vatten.
Mina synpunkter:
Det du gör är att skapa en array med samma namn som en variabel.
Kan ställa till det. Byt namn på arrayn är mitt förslag.
myArr= split(radio,"/")
Vilket värde har variablen radio innan split()?
Har den ex : "files/enfil.txt"
Om radio innehåller ex. "files/enfil.txt" och du vill få ut filnamnet så skulle jag hitta positionen för / och köra en mid() för att få ut filnamnet.
Dim pos 'as Integer
pos = instr(radio,"/")
fileName = mid(radio,pos + 1)
Om radio innehåller ett värde liknande detta:
"enfil.txt/enannanfil.txt"
Då kan det vara lägligt att splitta det till en array
myArr= split(radio,"/")
for each i in myArr
fileToDelete = Server.MapPath("/admin/admin_filer/aktuellt/") & i
Set fs = Server.CreateObject("Scripting.FileSystemObject")
if fs.FileExists(fileToDelete)Then
fs.DeleteFile(fileToDelete)
end if
next
Hoppas detta hjälper.
Tips. Kör en response.write på fileName för att se vad den innehåller.
//Putte