Fórum Declarar caminho de arquivo no XP #264741
10/01/2005
0
C:\Documents and Settings\[user]\Configurações Locais\Dados de Aplicativos\...
Quando coloco este caminho o código trava :(
PS.: No lugar do [user] já tentei colocar o nome do usuário mesmo (ex.:oregon) mas não vai..
Oregon
Curtir tópico
+ 0Posts
10/01/2005
Massuda
uses ShlObj; function PastaLocalDoUsuario: string; const CSIDL_LOCAL_APPDATA = $001C; var Buffer: array[0..MAX_PATH] of Char; begin SHGetSpecialFolderPath(0, @Buffer[0], CSIDL_LOCAL_APPDATA, True); Result := PChar(@Buffer[0]); end;
É preferível usar SHGetSpecialFolderPath pois dependendo da versão do Windows a pasta que você pretende utilizar tem outro nome (por exemplo, no Win98 não existe C:\Documents and Settings).
Qual a mensagem de erro? Por questões de segurança, normalmente não é permitido acessar a pasta de outros usuários. Outra possibilidade é que você esteja usando alguma função que não permita ter espaços no nome do diretório (algumas funções precisam que o nome contendo espaços esteja entre aspas).
Gostei + 0
10/01/2005
Oregon
Estou usando o seguinte código :
procedure TForm1.BitBtn2Click(Sender: TObject);
// Sistema Operacional Windows XP
var
SR: TSearchRec;
I: integer;
Origem, Destino: string;
User: String;
Dir: string;
Begin
If Form1.RadioButton1.Checked then // Verifica se o SO é WXP
begin
User := Form1.Edit1.Text;
If not(Directoryexists(´c:\Documents and Settings\´ + User + ´\´)) then
begin
ShowMessage (´Caminho inválido. Digite o caminho correto respeitando letras Maiúsculas e Minúsculas.´);
end;
I := FindFirst(´c:\Documents and Settings\´ + User + ´\*.*´, faAnyFile, SR);
while I = 0 do begin
if (SR.Attr and faDirectory) faDirectory then begin
Origem := ´c:\Documents and Settings\´ + User + ´\´ + SR.Name;
If not (directoryExists(´C:\backup-XP´)) then
begin
Dir := ´C:\backup-XP´;
ForceDirectories(Dir);
end;
Destino := ´c:\backup-XP\´ + SR.Name;
StatusBar1.Panels[0].Text:=´Backup executado com sucesso !´;
if not CopyFile(PChar(Origem), PChar(Destino), false) then
// ShowMessage(´Erro ao copiar ´ + Origem + ´ para ´ + Destino);
// end;
I := FindNext(SR);
end;
end;
end
else ...
Gostei + 0
10/01/2005
Massuda
procedure TForm1.BitBtn2Click(Sender: TObject);
// Sistema Operacional Windows XP
var
SR: TSearchRec;
I: Integer;
Origem, Destino: string;
User: string;
Dir: string;
begin
if Form1.RadioButton1.Checked then {// Verifica se o SO é WXP } begin
User := Form1.Edit1.Text;
if not (Directoryexists(´c:\Documents and Settings\´ + User + ´\´)) then begin
ShowMessage(´Caminho inválido. Digite o caminho correto respeitando letras Maiúsculas e Minúsculas.´);
end;
I := FindFirst(´c:\Documents and Settings\´ + User + ´\*.*´, faAnyFile, SR);
while I = 0 do begin
if (SR.Attr and faDirectory) <> faDirectory then begin
Origem := ´c:\Documents and Settings\´ + User + ´\´ + SR.Name;
if not (directoryExists(´C:\backup-XP´)) then begin
Dir := ´C:\backup-XP´;
ForceDirectories(Dir);
end;
Destino := ´c:\backup-XP\´ + SR.Name;
StatusBar1.Panels[0].Text := ´Backup executado com sucesso !´;
if not CopyFile(PChar(Origem), PChar(Destino), False) then
// ShowMessage(´Erro ao copiar ´ + Origem + ´ para ´ + Destino);
end; // <<< DESCOMENTE ESTA LINHA
I := FindNext(SR);
//end; // <<< COMENTE ESTA LINHA
end;
end
else ...Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)