[Risolto] ApplicationData - accesso negato

di il
8 risposte

[Risolto] ApplicationData - accesso negato

Ciao a tutti,

in una mia applicazione ho necessità di memorizzare dei dati su di un file.
Mi ricavo quindi la cartella "Application" con questa riga

My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData

ad, esempio: "C:\ProgramData\Sir Jo\Csv2Xlsx\1.0.0.0"
ma dato che non voglio essere dipendente dalla versione, tolgo la parte finale e mi ritrovo con: "C:\ProgramData\Sir Jo\Csv2Xlsx"
Su questa cartella creo ora una subcartella e mi ritrovo quindi con
XlsxDir = "C:\ProgramData\Sir Jo\Csv2Xlsx\xlsx"

Dentro su questa cartella devo creare un file con dei dati, e questo file è già nelle mie risorse, per cui per crearlo faccio:

My.Computer.FileSystem.WriteAllBytes(XlsxDir & "\[Content_Types].xml", My.Resources.Content_Types_xml, False)


Sui miei computer in ufficio e a casa funziona perfettamente (windows 10), ma sui PC del cliente (Windows 11 e Windows 10), mi dice “accesso al percorso negato”

Ho risolto facendolo lavorare su una sottocartella di dove è installato il programma, ma sinceramente la cosa non mi piace molto, sennò a cosa serve la ApplicationData ??

8 Risposte

  • Re: [Risolto] ApplicationData - accesso negato

    Forse fai già così ma comunque per avere la directory dov'è installato l'exe programmaticamente e senza inserire il valore nel programma puoi utilizzare la proprietà Location ,segue esempio  https://stackoverflow.com/questions/38071639/get-assembly-executable-directory 

  • Re: [Risolto] ApplicationData - accesso negato

    Io di solito uso

    My.Application.Info.DirectoryPath
  • Re: [Risolto] ApplicationData - accesso negato

    ….. nessuno sa dirmi perchè non riesco ad accedere all'application data ??

  • Re: [Risolto] ApplicationData - accesso negato

    Non usare quella cartella ma

    Environment.SpecialFolder.ApplicationData

    se I dati devono essere a livello utente, oppure

    Environment.SpecialFolder.CommonApplicationData

    se I dari eevono essere condivisi tra utenti

  • Re: [Risolto] ApplicationData - accesso negato

    Ancora non ho provato sul PC del cliente (ci proverò domani), 
    però (sul mio PC) se uso

    Dim MyDir = My.Computer.FileSystem.SpecialDirectories.AllUsersApplicationData

    mi ritrovo MyDir = “C:\ProgramData\Sir Jo\Csv2Xlsx\1.0.0.0”

    se invece uso

    Dim MyDir = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

    mi ritrovo con MyDir = “C:\ProgramData”

    facendo poi gli aggiunstamenti del caso (cioè aggiungo “\Sir Jo\Csv2Xlsx”) non vedo la differenza, per cui non capisco cosa dovrebbe cambiare

  • Re: [Risolto] ApplicationData - accesso negato

    Non dovresti creare una cartella con SirJo dato che non è importante l'utente (la cartella è per tutti gli utenti) ma l'applicazione.

    Quindi sarebbe meglio aggiungere solo \Csv2Xlsx

    La sottocartella in questione quando la crei? E quale utente è collegato quando la crei?

    In ogni caso, dopo le prove, ci risentiamo

  • Re: [Risolto] ApplicationData - accesso negato

    01/05/2023 - oregon ha scritto:


    Non dovresti creare una cartella con SirJo dato che non è importante l'utente (la cartella è per tutti gli utenti) ma l'applicazione.

    Io non ho creato nulla, la cartella C:\ProgramData\Sir Jo\Csv2Xlsx\1.0.0.0 viene creata da VB.NET in automatico.
    “Sir Jo” non è il nome utente ma lo prende dalla proprietà “società” (nella schermata “informazioni assembly”)
    e ovviamente Csv2Xlsx è il nome del progetto

  • Re: [Risolto] ApplicationData - accesso negato

    RISOLTO
    cercando un po' su internet ho trovato che probabilmente si trattava di un problema di accesso dovuto a permessi e cose del genere.
    Ho quindi provato ad accedere alla cartella tramite “esplora risorse”, ho provato a cancellare la cartella, mi ha dato un sacco di errori per i file in essa contenuti, ma sono riuscito a cancellare la cartella, a quel punto come lancio il programma lui la ricrea e ora funziona tutto perfettamente.
    Grazie mille a tutti per l'interessamento

Devi accedere o registrarti per scrivere nel forum
8 risposte