Spoock 0 Denunciar post Postado Julho 1, 2011 Bom pessoal, estou aqui de novo com duvidas sobre Delphi. Eu estou desenvolvendo um instalador com o Delphi, e gostaria de copiar um arquivo chamado base.txt para uma pasta no diretório Meus Documentos. No comando CopyFile(); eu teria que declarar o endereço completo do destino do arquivo, e não quero isso, já que a pasta Meus Documentos pode mudar o endereço e até mesmo partição dependendo do computador. Alguém tem ideia do que eu posso fazer, pensei em utilizar variáveis, então declarei um SelectDirectory(); para o usuário selecionar a pasta Meus Documentos, só que o comando CopyFile(); não aceita variáveis. procedure TForm3.Button1Click(Sender: TObject); Var S:String; Begin //Estilo Win 32 SelectDirectory('Selecione o diretório:', '', S); Edit1.Text:= S; end; No caso teria como o Delphi pegar automaticamente o endereço da pasta Meus Documentos\Pasta Adicional? Desde já obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
wllf 2 Denunciar post Postado Julho 1, 2011 Colega acho que esse site deve ajudar você. Clique aqui Compartilhar este post Link para o post Compartilhar em outros sites
bdexterholland 0 Denunciar post Postado Julho 3, 2011 Nao posso confirmar agora, estou postando do celular. Voce pode usar as variaveis de ambiente: ShowMessage(GetEnvironmentVariable('MyDocs')); Outro detalhe: FileCopy aceita variaveis sim, talvez voce esteja utilizando o tipo errado, tente usar o tipo Pchar: FileCopy(Pchar(Caminho),... Compartilhar este post Link para o post Compartilhar em outros sites
Spoock 0 Denunciar post Postado Julho 5, 2011 Pessoal, consegui! Obrigado wllf, sua dica foi a que funcionou. Olha bdexterholland, o codigo que você passou não funcionou não. procedure TForm3.Button5Click(Sender: TObject); var r: Bool; path: array[0..MAX_PATH] of Char; begin //substitua COLOQUE_AQUI_A_CONSTANTE_DESEJADA //pela constante relativa ao diretório desejado r := ShGetSpecialFolderPath(0, path, CSIDL_PERSONAL, False); if not r then raise Exception.Create('Diretório não Encontrado'); Edit1.Text:= Path; end; Problema Resolvido ^_^ Compartilhar este post Link para o post Compartilhar em outros sites
wllf 2 Denunciar post Postado Julho 6, 2011 Algum tempo atrás passei por um problema parecido, com esse código não importa a versão do windows, o sistema vai sempre encontrar a pasta Meus Documentos. Qualquer coisa estamos por aí ... Compartilhar este post Link para o post Compartilhar em outros sites