Vorrei cancellare un file ma non ci riesco: mi dà sempre errore.
Ecco lo spezzone di codice deputato a fare questo :
codice:
Set fso = Server.CreateObject("Scripting.FileSystemObject")
if fso.FileExists(server.MapPath("/Qui/Tracks/" & strFileParte) then
fso.DeleteFile server.MapPath("/Qui/Tracks/" & strFileParte),true
end if
set fso=nothing
Nulla di nuovo sotto il sole: è codice che ho sperimentato mille volte. Anche usando server.MapPath("/Qui/Tracks") & "/" & strFileParte invece di server.MapPath("/Qui/Tracks/" & strFileParte).
Premessa importante : il file che intendo cancellare è stato precedentemente inviato nel web da una mia app per Android (in corso di fase finale di realizzazione) con uno script che riporto qui sotto per completezza.
Lo script, richiamato ogni minuto, riceve il file strParte (nome sempre diverso) e lo aggiunge alla fine del file strBase (nome sempre uguale). Ciò avviene correttamente e da ciò deduco che i permessi di scrittura sono corretti e quindi (correggetemi se sbaglio) lo sono anche quelli di cancellazione. Anche un controllo con le utiliy fornitemi da chi mi da l'hosting conferma questo fatto.
Il file strBase pian pianino diventa sempre più grosso (dell'ordine dei KB) ed il file strParte è inutile, dopo l'operazione di append. Vorrei quindi cancellarlo, ma non riesco.
Forse l'operazione di delete deve attendere quanche tempo prima di poter essere avviata ?
Io credo di aver chiuso e posto a nothing tutto quanto doveva essere chiuso e annullato. O sbaglio ?
Suggerimenti ?
Grazie anticipatamente.
codice:
<%@ Language=VBScript %>
<%
dim fs, fs2, fs3
dim objBase, fileBase, strFileBase
dim objParte, fileParte, strFileParte
'
numtel=request.querystring("numtel")
codice=request.querystring("codice")
NumParteTW=request.querystring("NumParteTW")
P=right("00000" & NumParteTW,5)
n=now()
strFileBase=year(n) & right("0"&month(n),2) & right("0"&day(n),2) & "_" & numtel & "_" & codice & ".txt"
strFileParte="part_" & P & "_" & strFileBase
'
a=Request.TotalBytes
b=Request.BinaryRead(a)
set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = 1
BinaryStream.Open
BinaryStream.Write b
if P="00000" then
'--- file di base, nome sempre uguale
BinaryStream.SaveToFile server.MapPath("/Qui/Tracks") & "/" & strFileBase , 2
BinaryStream.close
set BinaryStream = nothing
else
'--- nome sempre diverso
BinaryStream.SaveToFile server.MapPath("/Qui/Tracks") & "/" & strFileParte , 2
BinaryStream.close
set BinaryStream = nothing
'--- leggo da questo file (strFileParte) e scrivo su strFileBase
set fs2=Server.CreateObject("Scripting.FileSystemObject")
Set fileParte=fs2.OpenTextFile(server.MapPath("/Qui/Tracks") & "/" & strFileParte)
Tutto=fileParte.ReadAll
fileParte.Close
set objParte=nothing
' fs2.delete (server.MapPath("/Qui/Tracks") & "/" & strFileParte),true ' non funziona
set fs2=nothing
'--- scrivo il contenuto di "strFileParte" alla fine del contenuto di "strFileBase"
set fs=Server.CreateObject("Scripting.FileSystemObject")
Set objBase=fs.GetFile(server.MapPath("/Qui/Tracks") & "/" & strFileBase)
Set fileBase=objBase.OpenAsTextStream(8) ' con il parametro 8 aggiungo
fileBase.Write(Tutto)
fileBase.Close
set objBase=nothing
set fs=nothing
'--- cancello il file che ormai non serve più NON FUNZIONA !!!
Set fso = Server.CreateObject("Scripting.FileSystemObject")
if fso.FileExists(server.MapPath("/Qui/Tracks/" & strFileParte) then
fso.DeleteFile server.MapPath("/Qui/Tracks/" & strFileParte),true
end if
set fso=nothing
end if
%>