Não existe esse diretório; %APPDATA%
é específico do Windows. Você terá que abstrair você mesmo: crie sua própria GetSaveGameDirectory
função que retorne um caminho apropriado para qualquer sistema operacional em que você esteja executando. Normalmente, você pode fazer essa determinação em tempo de compilação com verificações de pré-processador em relação às macros apropriadas em C (e é legal). Não tenho muita certeza da melhor maneira de fazer isso em Java.
No Windows, um %APPDATA%
subdiretório para sua empresa ou jogo é apropriado. No Mac, ~/Library/Application Support/Your Game
é comum, embora as diretrizes da Apple não recomendem o armazenamento de "dados do usuário" (deve ir para o ~/Documents
diretório) - depende principalmente se você solicita ou não ao usuário que selecione um diretório).
Em sistemas * nix gerais, você provavelmente encontrará menos padronização - talvez um diretório oculto ~
, como ~/.yourgame
? Certamente, essa é a prática comum para arquivos de configuração. Um usuário * nix real provavelmente precisará comentar se esse é um local apropriado para salvar o jogo.
Para obter melhores resultados, não codifique o caminho para o diretório com base na cadeia de caracteres em inglês, mas use a API do SO para acessar o diretório. Isso ajudará a garantir que seu jogo seja executado corretamente na versão não inglesa do sistema operacional. Por exemplo, no Windows, use SHGetKnownFolderPath ou um wrapper equivalente, se possível.
~/.gamename
é o comportamento esperado (e como sempre é feito, consulte Minecraft, Warzone2100 e qualquer outro jogo). Se você ainda deseja salvar em outro local, pode criar um link através desse diretório.On general *nix systems you'll probably find less standardization
... na verdade, sinto exatamente o oposto (se falarmos de Linux, BSD e Unix ... não tenho certeza sobre o MacOS). Exceto por alguns jogos de código-fonte horrível que não respeitam a estrutura de diretórios, sempre encontro meus arquivos de configuração e jogos salvos~/.name
.~/Library/Application Support/Your Game
como Josh sugeriu. Isso mantém todo o conceito de "backup da sua pasta pessoal para fazer backup de tudo o que você precisa" do * nix, mas não se~/
confunde com muitos pacotes de arquivos de ponto. Embora agora~Library
seja uma pasta oculta, se os usuários realmente querem economizar, eles podem abrir o Terminal. Ou você pode ter um botão "exportar salvar arquivo", que parece melhor. Não sei como me sintoDocuments
.No Linux, o único caminho padronizado seria os diretórios
XDG_DATA_HOME
eXDG_CONFIG_HOME
. Use as variáveis ambientais com esses nomes, se elas existirem, caso contrário,$HOME/.local/share/<appname>/
serão padrão para dados do usuário (salvamentos, progresso, perfil do jogador) e$HOME/.config/<appname>/
para configuração. A exclusão do último diretório, em teoria, não deve afetar os dados fornecidos pelo usuário, exceto a redefinição de tudo para as configurações padrão. Você também temXDG_CACHE_DIR
($HOME/.cache/<appname>
) arquivos não essenciais / temporários.Despejar tudo
$HOME/.<appname>
apenas desorganiza a pasta pessoal do usuário e eles podem não gostar disso. É uma prática praticamente obsoleta com a nova iniciativa de padronização do Free Desktop.fonte
Windows :
Linux :
OSX :
Como Josh mencionou, não codifique os caminhos - use a API do SO para usar o caminho correto :-)
fonte
~/.gamename
, porque esse é o comportamento que eu esperaria.Eu acho que o melhor de todos os lugares para colocar dados do jogo seria a pasta de instalação do seu jogo, IE:
Onde% install% seria algo como C: \ programfiles \ yourgame \ ou ~ / apps / yourgame /
fonte
It works for me
Isso é ótimo, mas não funciona para o resto do mundo.