none
Sistemas do CSIDL RRS feed

  • Pergunta

  • Estou com duvida soobre salvar arquivos em tal pastas

    meu sistema está assim

    if( SUCCEEDED(SHGetFolderPath(NULL, CSIDL_MYDOCUMENTS | CSIDL_FLAG_CREATE, NULL, 0, dest)) ) 
    	{
    		strcat( dest, "\\Pasta de Config\\" );
    		mkdir( dest );
    		strcat( dest, "cfg\\" );
    		mkdir( dest );
    		return true;
    	}

    Este código salva o arquivo de configuração do programa na pasta documentos "CSIDL_MYDOCUMENTS"

    Eu queria mudar a linha CSIDL_MYDOCUMENTS para uma pasta especifica

    ou seja desejo colocar em uma determinada pasta.

    Por padrão ele salva em documentos, mas meu programa também por padrão fica em documentos eu eu queria colocar que essa pasta de confi fica dentro da pasta do programa.

    uma duvida se eu colocar desse jeito funciona?

    CSIDL_MYDOCUMENTS_NOMEDAPASTA

    quarta-feira, 19 de agosto de 2015 10:26

Respostas

  • Não funciona, pois a função SHGetFolderPath retorna o diretório baseado no valor CSIDL, vide referência:

    https://msdn.microsoft.com/pt-br/library/windows/desktop/bb762494(v=vs.85).aspx

    Para obter a diretório da tua aplicação + nome da aplicação utilize a função GetModuleFileName e a PathRemoveFileSpec para remover o nome da aplicação constando apenas o diretório. Como exemplo veja a resposta de Nate neste link:

    http://stackoverflow.com/questions/1528298/get-path-of-executable

    • Marcado como Resposta LukasCCB quarta-feira, 19 de agosto de 2015 12:35
    quarta-feira, 19 de agosto de 2015 11:45