Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
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),...
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;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 ^_^
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í ...
Colega acho que esse site deve ajudar você.
Clique aqui