Como renomear pasta pelo delphi...

11/02/2003

0

Qual a função pra renomear uma pasta no delphi, ago tipo
renamedir(path); :


Mscher

Mscher

Responder

Posts

11/02/2003

Navoid

crie uma unit igual a debaixo
***********
unit renomeia_dir;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ShlObj, ShellAPI, Ole2;

type
PSHNameMapping = ^TSHNameMapping;

function RenomeiaDir(NomeAntigo, NomeNovo: string): Boolean;

implementation

function RenomeiaDir(NomeAntigo, NomeNovo: string): Boolean;
const
OperationToSH: array[TFileOperation] of Integer = (FO_COPY, FO_DELETE, FO_MOVE, FO_RENAME);
FileOpToSH: array[TFileOperationFlag] of FILEOP_FLAGS =
(FOF_ALLOWUNDO, FOF_CONFIRMMOUSE, FOF_FILESONLY,
FOF_MULTIDESTFILES, FOF_NOCONFIRMATION, FOF_NOCONFIRMMKDIR,
FOF_RENAMEONCOLLISION, FOF_SILENT, FOF_SIMPLEPROGRESS);
var
lpFileOp: TSHFileOpStruct;
AFrom, ATo: string;
I: Integer;
begin
with lpFileOp do
begin
if Owner is TForm then
Wnd:= TForm(Owner).Handle
else
Wnd:= Application.Handle;
wFunc:= FO_RENAME;
AFrom:= FFrom + #00;
for I:= 1 to Length(AFrom) do
if AFrom[I] = ´;´ then
AFrom[I] := 0;
pFrom:= PChar(AFrom);
ATo:= FTo + 00;
for I:= 1 to Length(ATo) do
if ATo[I] = ´;´ then
ATo[I] := 0;
pTo:= PChar(ATo);
fFlags := 0;
if fofAllowUndo in Flags then fFlags:= fFlags or FOF_ALLOWUNDO;
if fofConfirmMouse in Flags then fFlags:= fFlags or FOF_CONFIRMMOUSE;
if fofFilesOnly in Flags then fFlags:= fFlags or FOF_FILESONLY;
if fofMultiDestFiles in Flags then fFlags:= fFlags or FOF_MULTIDESTFILES;
if fofNoConfirmation in Flags then fFlags:= fFlags or FOF_NOCONFIRMATION;
if fofNoConfirmMkDir in Flags then fFlags:= fFlags or FOF_NOCONFIRMMKDIR;
if fofRenameOnCollision in Flags then fFlags:= fFlags or FOF_RENAMEONCOLLISION;
if fofSilent in Flags then fFlags:= fFlags or FOF_SILENT;
if fofSimpleProgress in Flags then fFlags:= fFlags or FOF_SIMPLEPROGRESS;
lpszProgressTitle:= PChar(FProgressTitle)
end;
Result:= not Boolean(SHFileOperation(lpFileOp));
FOperationAborted:= lpFileOp.fAnyOperationsAborted
end;

end.
***********

depois declare-a na clausula uses e chame a função assim
renomeiadir(´C:\diretorio_antigo´, ´C:\diretorio_novo´);

até


Responder

23/03/2003

Márcio Dertônio

Use renamefile(´C:\arquivo.txt´, ´C:\arquivo.log´);

M@rcio


Responder

23/03/2003

Márcio Dertônio

desculpe, me enganei...


Responder

23/03/2003

Carnette

Qual a função pra renomear uma pasta no delphi, ago tipo renamedir(path); :


Outra variação do exemplo que o NAVOID mostrou

uses
ShellApi;

procedure RenameDir(DirFrom, DirTo: string);
var
shellinfo: TSHFileOpStruct;
begin
with shellinfo do
begin
Wnd := 0;
wFunc := FO_RENAME;
pFrom := PChar(DirFrom);
pTo := PChar(DirTo);
fFlags := FOF_FILESONLY or FOF_ALLOWUNDO or
FOF_SILENT or FOF_NOCONFIRMATION;
end;
SHFileOperation(shellinfo);
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
RenameDir(´C:\Dir1´, ´C:\Dir2´);
end;


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar