Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    278

    [vb.net vb.6] punti standard in cui piazzare i propri file

    ciao a tutti avevo una curiosità.
    spesso mi capita di dover metter dei file che poi richiamo in dei punti standard del computer
    ad esempio se voglio richiamare il file ciccio.bmp:
    io lo piazzo in c:\ e poi lo richiamerò nel programma con c:\ciccio.bmp, se distribuirò il programma farò mettere lì quel file e andrà così su tutti i pc.
    ci sono altri punti abbastanza standard in cui piazzare i propri file?in maniera che poi distribuendo il file, con facilità sia richiamabile??
    non è possivile mettere il file nella stessa cartella del programma tipo le librerie e poi richiamarlo?se sì come?
    oppure quali altre cartelle di windows posso sfruttare?
    a volte mi capita anche di dover generare dei file temporanei, che poi rimangono lì però. perchè non li cancello ma li faccio sovrascrivere...con quelli come posso fare???
    grazie!

  2. #2

    Re: [vb.net vb.6] punti standard in cui piazzare i propri file

    Ciao ...
    >ad esempio se voglio richiamare il file ciccio.bmp:

    Non scrivi x quale motivo usi le immagini (menu ... Tab ... Pulsanti ...)
    Dipende dal componente che stai usando come contenitore, di solito io uso Image, ed applico LoadPicture ...
    Image1.Picture=LoadPicture("C:\Pippo.Jpg")

    >io lo piazzo in c:\ e poi lo richiamerò nel programma con c:\ciccio.bmp ...

    E' buona norma non distribuire file del proprio applicativo in giro per l'hardisk ... se proprio vuoi usare una cartella la definisci all'interno del tuo programma (esemp. C:\Programmi\MIOPROGRAMMA\IMAGES\")
    cosi' avrai sempre le immagini nello stesso posto, per recuperarle e' molto semplice ...
    Per sapere dove e' installato il programma devi usare il metodo APP.Path, ti restituira' il percorso del tuo eseguibile ... gli aggiungi IMAGES e' il gioco e' fatto esemp.
    MioPath=App.Path (restituira' C:\Programmi\MIOPROGRAMMA)
    MioPath_Images = MioPath & "\Images\
    e' il gioco e' fatto

    Un altro metodo un po' piu' "Professionale" e' usare Il Path dell'utente "Document And Setting" pero' qui' devi conoscere bene le API di Windows per poter ottenere i percorsi di sistema ...

    Ciao e in bocca al lupo

    Filippo

  3. #3

    Re: [vb.net vb.6] punti standard in cui piazzare i propri file

    Originariamente inviato da stejano
    ciao a tutti avevo una curiosità.
    spesso mi capita di dover metter dei file che poi richiamo in dei punti standard del computer
    ad esempio se voglio richiamare il file ciccio.bmp:
    io lo piazzo in c:\ e poi lo richiamerò nel programma con c:\ciccio.bmp, se distribuirò il programma farò mettere lì quel file e andrà così su tutti i pc.
    Non è una buona prassi: la cartella radice del disco di sistema sui sistemi NT (quindi NT, 2000, XP, 2003 Server e Vista) è protetta di default da un'ACL che consente solamente ad amministratori e Power Users di creare e modificare file, per cui i normali utenti limitati non saranno in grado di eseguire la tua applicazione.
    ci sono altri punti abbastanza standard in cui piazzare i propri file?in maniera che poi distribuendo il file, con facilità sia richiamabile??
    non è possivile mettere il file nella stessa cartella del programma tipo le librerie e poi richiamarlo?se sì come?
    oppure quali altre cartelle di windows posso sfruttare?
    a volte mi capita anche di dover generare dei file temporanei, che poi rimangono lì però. perchè non li cancello ma li faccio sovrascrivere...con quelli come posso fare???
    grazie!
    In linea di massima non bisognerebbe MAI inserire un percorso hardcoded nel codice del proprio programma, perché non è detto che tale percorso esista o che l'utente abbia i permessi per accederci. Il modo corretto per scrivere file su disco senza che l'utente dica dove devono andare è usare le variabili di ambiente per ottenere i percorsi standard; le linee guida sono queste:
    • i file di configurazione per-user dell'applicazione vanno in %appdata%\nomeapplicazione (in VB.NET puoi usare anche solo Application.UserAppDataPath, che restituisce %appdata%\nomeproduttore\nomeprodotto\versioneprod otto);
    • i file temporanei vanno in %tmp% (o in %temp%);
    • i file di configurazione dell'applicazione modificabili solo dall'amministratore vanno messi nella cartella dell'applicazione (App.Path in VB6, Application.StartupPath in VB.NET);
    • i file di configurazione comuni a tutti gli utenti e modificabili da tutti vanno in %allusersprofile%\nomeapplicazione (in VB.NET puoi usare anche solo Application.CommonAppDataPath, che restituisce %allusersprofile%\nomeproduttore\nomeprodotto\vers ioneprodotto);
    • nient'altro andrebbe messo in altri posti (in verità ci sarebbe anche la distinzione tra appdata in roaming o locale, ma non stiamo a sottilizzare).

    I file temporanei ovviamente dovrebbero essere cancellati quando non servono più.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4

    Re: Re: [vb.net vb.6] punti standard in cui piazzare i propri file

    Originariamente inviato da filippo_260367
    Un altro metodo un po' piu' "Professionale" e' usare Il Path dell'utente "Document And Setting" pero' qui' devi conoscere bene le API di Windows per poter ottenere i percorsi di sistema ...
    È l'unico metodo che andrebbe usato per i motivi detti poco sopra; comunque non servono API, basta espandere le variabili d'ambiente con Environ$ (VB6) o con Environment.ExpandEnvironmentVariabiles (VB.NET).
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5

    Re: Re: Re: [vb.net vb.6] punti standard in cui piazzare i propri file

    Originariamente inviato da MItaly
    È l'unico metodo che andrebbe usato per i motivi detti poco sopra; comunque non servono API, basta espandere le variabili d'ambiente con Environ$ (VB6) o con Environment.ExpandEnvironmentVariabiles (VB.NET).
    Sono pienamente d'accordo ! Non ero stato cosi' dettagliato come te' per non confondere il nostor amico.

    Comunque hai acceso una curiosita' in me' ... Non ho capito bene ... usi la Funzione
    Environ(Envstr,EnvNum) oppure aggiungi dei riferimenti ... (se si' quali ... grazie :-)

    Ciao
    Filippo

  6. #6

    Re: Re: Re: [vb.net vb.6] punti standard in cui piazzare i propri file

    Originariamente inviato da MItaly
    È l'unico metodo che andrebbe usato per i motivi detti poco sopra; comunque non servono API, basta espandere le variabili d'ambiente con Environ$ (VB6) o con Environment.ExpandEnvironmentVariabiles (VB.NET).
    Originariamente inviato da filippo_260367
    Sono pienamente d'accordo ! Non ero stato cosi' dettagliato come te' per non confondere il nostor amico.

    Comunque hai acceso una curiosita' in me' ... Non ho capito bene ... usi la Funzione
    Environ(Envstr,EnvNum) oppure aggiungi dei riferimenti ... (se si' quali ... grazie :-)

    Ciao
    Filippo
    Scusa ... ho gia' provato ... "Fig...ta" non si finisce mai di imparare

    Grazie e alla prossima

  7. #7
    Non c'è di che!
    Amaro C++, il gusto pieno dell'undefined behavior.

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.