Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130

    [VB.NET] Accesso al percorso negato.

    Salve, stò facendo un semplice programma che deve scrivere dei dati in un file, precisamente in un file csv.

    Sono ancora in fase di programmazione, e ho creato un file data.csv in c: ma quando vado a scrivere, mi esce l'errore Accesso al percorso 'C:\data.csv' negato.


    Ho provato quindi a spostare il file da altre parti, esempio in C:\Utenti\data.csv ma stranamente mi esce l'errore "Impossibile trovare una parte del percorso 'C:\Utenti\data.csv."

    Inutile dire che la cartella esiste, il file anche, ed il percorso è corretto.

    in pratica stò impazzendo per una cosa che dovrebbe essere semplicissima.


    Come posso risolvere?

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Qualche dettaglio. Se stai lavorando su Windows 7 o Vista, come immagino che sia, per modificare un file al livello di C:\ devi essere amministratore (e l'errore che viene fuori se non lo sei è "Accesso negato"). Il percorso "C:\Utenti\blablabla.csv" non esiste perché si chiama "C:\Users\blablabla.csv". Se vuoi una prova, vai in quella cartella con Esplora Risorse e clicca sulla barra in alto con il percorso e leggi ciò che viene fuori.

    Se vuoi un consiglio, io metto sempre i file interni che il mio programma andrà a modificare in %APPDATA%\NomeMioProgramma

    Spero di averti aiutato.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130
    Io attualmente stò utilizzando Windows7
    Il problema è che una volta finito e compilato, il programma dovrà girare su windows7 che su windows XP, quindi devo trovare un percorso che sia uguale in tutti e 2 i S.O.
    Pure la cartella appdata ha percorsi diversi da windows7 a windows xp

    Per questo volevo utilizzare la radice c: sicuro che in qualsiasi S.O. il percorso è identico

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    E invece non devi usare la root, non è l'approccio corretto.

    Anche se i percorsi sono diversi, non devi scriverli direttamente nel tuo programma ma li devi ottenere tramite le opportune classi/enumerazioni, vedi

    http://msdn.microsoft.com/it-it/libr...folder.aspx#Y0
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130
    Ok perfetto grazie della dritta, in pratica ho risolto così

    Dim percorso As String
    percorso = Environment.GetFolderPath(Environment.SpecialFolde r.ApplicationData) & "\data.csv"

    Dim scrivi As New System.IO.StreamWriter(percorso)

    dove Environment.SpecialFolder.ApplicationData mi trova il percorso della cartella application data

    Poi in fase di installazione creerò una cartella apposita all'interno di application data

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    In fase di installazione potrai indicare all'installer le cartelle in cui copiare specifici file in modo analogo.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Occhio, nel codice che hai scritto stai mettendo data.csv direttamente in application data, non in una sottodirectory relativa alla tua applicazione.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    130
    si infatti.
    La sottodirectory la posso creare in fase di installazione tramite il setup?
    O forse è meglio che la faccio creare direttamente dal codice Vb?

    In questo momento stò ancora in fase di programmazione, quindi la sottodirectory in ApplicationData ancora non esiste, per questo stò inserendo il file direttamente in ApplicationData

  9. #9
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    La sottodirectory, di norma, si crea con il setup. Il come, però, dipende da quale software usi per creare il setup

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  10. #10
    Il tuo programma deve essere pronto a crearla, dato che il setup creerà la directory in questione solo per l'utente che ha lanciato il setup, e non per tutti gli altri utenti.
    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.