PDA

View Full Version : مي خواهم تمام فولدرهاي يك فولدر تغيير نام دهم



ali_abbasi22145
یک شنبه 15 فروردین 1389, 11:11 صبح
سلام
من مي خواهم تمام فولدرهاي يك فولدر تغيير نام دهم مثلا : فولدر ali به ali1 و فولدر ahamd به ahmad1

Mahmood_M
پنج شنبه 19 فروردین 1389, 14:17 عصر
بايد فولدرهاي درون يك پوشه رو جستجو كنيد و با پيدا كردن هر كدوم اون رو تغيير نام بديد ...
اين مقاله (http://barnamenevis.org/forum/showthread.php?t=70587) كمكتون مي كنه ...

موفق باشيد ...

vcldeveloper
پنج شنبه 19 فروردین 1389, 20:27 عصر
در دلفی 2010:

uses
IOUtils, Types;

procedure RenameAllFolders(const Path, NewSuffix: string);
var
Directories : TStringDynArray;
ADirectory : string;
begin
if not DirectoryExists(Path) then
raise Exception.Create('Path not found.');

Directories := TDirectory.GetDirectories(Path,'*.*',TSearchOption .soAllDirectories);
for ADirectory in Directories do
MoveFile(PChar(ADirectory),PChar(ADirectory + NewSuffix));
end;

مثال:

RenameAllFolders('D:\My Folder\','_1');
کد بالا عبارت 1_ را به انتهای نام تمامی پوشه ها و زیر پوشه های پوشه My Folder در درایو D اضافه میکنه.

ali_abbasi22145
سه شنبه 31 فروردین 1389, 12:25 عصر
من راه حل براي دلفي 7 مي خواهم،كسي راه حل ندارد؟

baran_2005
سه شنبه 31 فروردین 1389, 13:30 عصر
با استفاده ا ز DirectoryListBox می توانید تمام زیر پوشه های یک پوشه را به دست بیاورید (فکر کنم از خصوصیت DirectoryListBox1.Items.DelimitedText بتوانید استفاده کنید) و با دستور زیر داخل یک حلقه انها را تغییر نام دهید .
RenameFile('c:\n', 'c:\n1');
که کد بالا پوشه n را n1 تغییر نام میدهد .

مهران رسا
سه شنبه 31 فروردین 1389, 15:45 عصر
من راه حل براي دلفي 7 مي خواهم،كسي راه حل ندارد؟

وقتی در VCL توابع آماده ای واسه اینکار وجود نداشته باشه آخرین راه استفاده از API ویندوز هست . در گوگل به دنبال توابع API جستجوگر ویندوز بگردید .

Felony
سه شنبه 31 فروردین 1389, 22:44 عصر
در مورد توابع FindFirst و FindNext و Rename تحقیق کنید .

ali_abbasi22145
یک شنبه 05 اردیبهشت 1389, 16:04 عصر
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;