Текущий архив: 2005.02.20;
Скачать: CL | DM;
ВнизКак переименовать каталог Найти похожие ветки
← →
suharew (2005-01-05 21:02) [0]
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;
Делаю переименование таким способом. Все работает. Но если в цикле начинаешь переименовывать каталогов 10-20 то почему-то переименовывает через один или через два, короче часть все равно остается не переименована.
Есть может куда проще метод. Или я что-то не так делаю?
← →
suharew (2005-01-05 21:06) [1]
for j:=0 to filelistbox2.Count-1 do
RenameDir(FileListBox2.Items.Strings[j],"dir"+inttostr(j))
Вот так переименовываю. Если цикл прерывать, вписав в него showmessage("") тогда работает нормально.
← →
jack128 © (2005-01-06 02:09) [2]Вот ищет народ проблем на свою голову..
for j:=0 to filelistbox2.Count-1 do
Win32Check(MoveFile(PChar(FileListBox2.Items[j]),PChar("dir"+inttostr(j))));
← →
jack128 © (2005-01-06 02:11) [3]А у тя была ошибка в следующем
pFrom
Pointer to a buffer that specifies one or more source file names. Multiple names must be null-separated. The list of names must be double null-terminated.
Страницы: 1 вся ветка
Текущий архив: 2005.02.20;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.036 c