Vorrei cancellare un file ma non ci riesco: mi dà sempre errore.
Ecco lo spezzone di codice deputato a fare questo :
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).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
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 %>

Rispondi quotando