Fórum CopyFile & OpenPictureDialog- não copia arquivo! #575091
20/02/2017
0
C:\\Users\\NomeDoUsuario\\Pictures e quando peço o OpenPictureDialog.FileName ele me traz a seguinte rota ('Imagens\\teste.jpg').
como devo proceder para OpenPictureDialog trazer a rota correta para copiar o arquivo.
Usei isso para pegar a pasta
function TfrmTelaPrincipal.GetSpecialFolderPath(folder: integer): string;
const
SHGFP_TYPE_CURRENT = 0;
var path: array [0..MAX_PATH] of char;
begin
{Lista de variaves para uso na Função}
{ CSIDL_PERSONAL // [Current User]\\My Documents
CSIDL_COMMON_DOCUMENTS // \\All Users\\Documents
CSIDL_MYPICTURES // [Current User]\\My Documents\\My Pictures
CSIDL_COMMON_PICTURES // \\All Users\\Documents\\My Pictures
}
if SUCCEEDED(SHGetFolderPath(0,folder,0,SHGFP_TYPE_CURRENT,@path[0])) then
Result := path
else
Result := '';
end;
No FormCreate seto o InitialDir (atá aqui aparece o caminho completo (C:\\usuario\\Documents\\My Pictures)
procedure TfrmManutencaoParametros.FormCreate(Sender: TObject); begin //[Current Windows User]\\My Documents\\My Pictures opdParametros.InitialDir := frmTelaPrincipal.GetSpecialFolderPath(CSIDL_MYPICTURES); end;
na hora de copiar da erro
vDes := Trim(DataModuleGeral.tbParametrosPASTA_BD.AsString+'\\Logo-Escritorio'+vExt);
if not CopyFile(PChar(opdParametros.FileName), PChar(vDes)), False) then
raise Exception.Create('Atenção! Erro ao copiar o arquivo.')
Eduardo Silva
Curtir tópico
+ 0Post mais votado
20/02/2017
Se existir um arquivo e estiver em uso o sistema operacional não consegue substituir um arquivo em uso.
PS: Dica o seu GetSpecialFolderPath nas versões mais novas do delphi pode ser trocado pela classe TPath. Exemplo de uso :
OpenPictureDialog.InitialDir := TPath.GetPicturesPath;
Espero ter ajudado.
Abraços
Gutierry Pereira
Gostei + 1
Mais Posts
21/02/2017
Eduardo Silva
Gostei + 1
21/02/2017
Eduardo Silva
Só Lembrando que para que precisar que precisa declarar no Users
System.IOUtils
Gostei + 1
21/02/2017
Gutierry Pereira
Uma dica, ctrl + shift + A declara automaticamente a uses de um meto ou uma classe que esteja selecionada. ;)
Gostei + 1
22/02/2017
Eduardo Silva
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)