Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VBScript] Cancellare un file

    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
    %>
    Ultima modifica di giustavalla; 09-08-2017 a 16:20

  2. #2
    mi dà sempre errore: QUALE errore?

  3. #3
    Quale errore ?
    Bella domanda. Non credo di avere la possibilità di capire quale, visto che non ho un output sul quale reindirizzare qualche messaggio del tipo "response.write NomeVariabile".
    Semplicemente mi accorgo (con Filezilla) che i files non vengono cancellati; le altre operazioni (l'append del file strParte) avviene correttamente ma lo script, con ogni probabilità, va in errore proprio nelle ultimissime righe.

  4. #4
    RISOLTO !
    Si trattava di una parentesi mancante nella linea
    codice:
    if fso.FileExists(server.MapPath("/Qui/Tracks/" & strFileParte) then
    Ho fatto la figura del ciuculatè, come si dice dalle mie parti.
    Chiedo umilmente scusa.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.