|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
[C++/Windows]Ottenere la cartella dell'user?
Salve,
finalmente il progetto che sto sviluppando si avvicina al completamento, e mi sono scontrato con questa "ovvietà" che tanto ovvia non è Come si sa i moderni windows non permettono di salvare nella cartella Programmi, quindi è necessario salvare le partite e i profili utenti in una cartella apposita... che tuttavia ha cambiato posto 3 volte negli ultimi 3 windows ![]() Considerato che un link hardcoded è fuori discussione, come faccio ad ottenere la cartella dell'utente (tipo AppData che c'è in documenti) all'interno del codice C++? Sembra facile ma non so nemmeno cosa cercare. Thank you |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2005
Messaggi: 3306
|
L'API è SHGetFolderPath (SHGetKnownFolderPath su Vista e successivi), poi di preciso dovresti vedere quale cartella ti interessa e passare i parametri di conseguenza.
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
SHGetKnownFolderPath (o SHGetFolderPath se è anche per XP e OS precedenti)
http://msdn.microsoft.com/en-us/libr...=VS.85%29.aspx |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Dec 2003
Messaggi: 4907
|
Usa SHGetFolderPath.
Se sei su XP farà quel che deve fare, se sei su Vista o 7 farà da wrapper per SHGetKnownFolderPath. Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Uhm ma non c'è il rischio che verrà droppato?
Una domanda "teorica": Considerato un normalissimo gioco scaricato da internet e installato, dove dovrei mettere i files di config secondo Microsoft? Ho visto che la maggior parte dei giochi li mette dentro ad AppData/Local ma non è una regola, molti li mettono dentro a documenti (e li odio) o in altri posti... qual'è il "motivo" delle varie cartelle, insomma? |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12900
|
Quote:
Mi pare si chiami Saved Games. Ultima modifica di WarDuck : 19-04-2010 alle 15:58. |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Si ma da quello che so c'è solo in Vista... poi in Seven è stata nuovamente rimossa.
Mi sa che è meglio usare un AppData a caso ![]() Seven mi restituisce Local quando gli chiedo CSIDL_LOCAL_APPDATA, quindi deve essere quella che mi interessa. Ora rimane il problema di invertire tutti i \ in /, maledetto win ![]() Grazie dell'aiuto! |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: May 2001
Messaggi: 12900
|
No in Seven c'è ancora, il percorso è:
%USERPROFILE%\Saved Games |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Altro problema:
se provo a salvare in Appdata\gioco\profilo\test.txt per la prima volta, non mi crea le cartelle... invece funziona e riesce a creare il file se gioco e profilo le ho create a mano. E' curioso perchè AppData non richiede alcun privilegio per essere modificata... c'è una qualche funzione speciale da usare? EDIT: e certo, ofstream può creare solo il file e non le cartelle. Credo sia meglio lasciare la creazione della cartella all'installer allora. Ultima modifica di Tommo : 19-04-2010 alle 16:37. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:52.





















