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

    Variabile d'ambiente percorso file temporanei

    Ciao a tutti!
    Magari la domanda è banale, ma sono alle prime armi!
    Qual è,in VIsual Basic e VB.net (VBscript) la variabile d'ambiente che definisce il percorso ai file temporanei?Cioè per i file Batch e in WIndows in generale "%TEMP%" rappresenta il percorso ai file temporanei dell'utente loggato al momento. Qual'è questa variabile per Visual Basic?

    Sto creando un applicazione che ha bisogno di richiamare un file temporaneo creato da un altro programma,ma per rendere l'applicazione "portabile" ho bisogno di una variabile d'ambiente, non posso mettere il "mio" percorso ai file temporanei!

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    A titolo di informazione, le "variabili d'ambiente" esistono a livello di sistema, non di linguaggio di programmazione.

    Se apri una finestra Prompt DOS e digiti
    SET + invio
    otterrai l'elenco completo delle variabili e relativo valore

    Detto questo, i linguaggi di programmazione forniscono le funzioni atte a recuperare questi valori.

    In VB6 :
    codice:
        MsgBox(Environ("TEMP"))
    In VB.NET:
    codice:
        MessageBox.Show(Environment.GetEnvironmentVariable("%temp%"))
    Ciao

  3. #3
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Ciao CaptainHook8,
    posto un esempio, reperito tempo fa in rete, per la creazione e la successiva distruzione di un file temporaneo nel percorso: C:\Documents and Settings\NomeComputer\Impostazioni locali\Temp\T&T...
    Evidenzio che per il SO WinXP funziona egregiamente:

    codice:
    Option Explicit
    'Restituisce la lunghezza (in caratteri) del percorso della cartella temporanea di
    'sistema posta all'interno della variabile stringa lpBuffer
    '(stringa null-terminated). lpBuffer dovrà essere pre-inizializzata ed in
    'nBufferLenght dovremo indicare la sua lunghezza:
      Private Declare Function GetTempPath Lib "kernel32" _
        Alias "GetTempPathA" (ByVal nBufferLength As Long, _
        ByVal lpBuffer As String) As Long
    'Restituisce un numero Long che indica l'esito dell'operazione di creazione del
    'file temporaneo (0 se si è verificato un errore). lpszPath è la posizione in
    'cui verrà creato il file temporaneo, lpPrefixString contiene un prefisso che
    'verrà utilizzato nel nome casuale da generare, wUnique è un numero (univoco)
    'utilizzato per la costruzione del nome del
    'file (se wUnique=0 allora la creazione del numero univoco sarà basata sul timer
    'di sistema). NB: le stringhe lpszPath e lpPrefixString NON POSSONO essere vuote.
      Private Declare Function GetTempFileName Lib "kernel32" _
         Alias "GetTempFileNameA" (ByVal lpszPath As String, _
         ByVal lpPrefixString As String, ByVal wUnique As Long, _
         ByVal lpTempFileName As String) As Long
     '-------------------------------------------------------------------
      Private Function CreaFileTemporaneo(sPrefix As String) As String
         Dim nRes As Long, sTmpPath As String, sNomeTemp As String
         Dim iStrPathLen As Integer
      
          iStrPathLen = 512
         ' sTmpPath viene è inizializzata a 512 caratteri
         sTmpPath = Space$(iStrPathLen)
         ' sNomeTemp viene è inizializzata a 576 caratteri
         sNomeTemp = Space$(iStrPathLen + 4)
         nRes = GetTempPath(iStrPathLen, sTmpPath)
         If (nRes > 0 And nRes < iStrPathLen) Then
            nRes = GetTempFileName(sTmpPath, sPrefix, 0, sNomeTemp)
            If nRes <> 0 Then
              CreaFileTemporaneo = Left$(sNomeTemp, _
                                   InStr(sNomeTemp, vbNullChar) - 1)
            End If
         End If
      
      End Function
    '-------------------------------------------------------------------
        Private Sub Command1_Click()
         Dim sTempFile As String
         Dim sMsg As String
         Dim hFile As Long
      
         sTempFile = CreaFileTemporaneo("T&T")
         hFile = FreeFile
      
         ' Creo il file temporaneo...
         Open sTempFile For Binary As hFile
            Put #hFile, , "Contenuto del file temporaneo."
         Close hFile
      
         sMsg = "Nome file temporaneo: " & sTempFile & vbCrLf
         sMsg = sMsg & "Lunghezza file: " & FileLen(sTempFile) & vbCrLf
         sMsg = sMsg & "Creato alle: " & Format$(FileDateTime(sTempFile), _
                "long time") & vbCrLf
      
         MsgBox sMsg, vbInformation, "File Temporaneo creato"
      
         ' Elimino il file temporaneo...
         Kill sTempFile
      
      End Sub
    Spero che sia utile..
    LM

  4. #4
    Utente di HTML.it L'avatar di fu510n
    Registrato dal
    Sep 2005
    Messaggi
    137
    Spero vivamente che tu utilizzi VB.NET perchè in VB6 è tutto così incasinato e macchinoso
    Ricorda di specificare il linguaggio di programmazione nel titolo la prossima volta.


    Ciau ciau
    Fusion

    Currency Text Box (Updated: 16 Maggio 2008): http://digilander.libero.it/cmfusion/CurrencyTextBox.html

  5. #5
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da fu510n
    Spero vivamente che tu utilizzi VB.NET perchè in VB6 è tutto così incasinato e macchinoso
    Ricorda di specificare il linguaggio di programmazione nel titolo la prossima volta.


    Ciau ciau
    Concordo 100%

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 © 2025 vBulletin Solutions, Inc. All rights reserved.