![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Вкратце обрисую ситуацию.
Есть такая игра TES4:Oblivion. И есть к ней моды (модификации). Некоторые требуют наличия такого файла, как ArchiveInvalidation.txt. В нем должны перечисляться пути к заменяемым модификацией файлам. Например: textures/menus/map/world/cyrodiil_resized.dds textures/menus/map/world_map_arrow_icon.dds textures/menus/hud/hud_compass_goal.dds и т.д. Насколько мне известно можно начинать отсчет хоть от названия диска: С:/.../file.dds Моя цель - создать программку, автоматически перечисляющую эти пути (вручную писать долго...). Вопрос: каким образом можно заставить программу перечислять все пути к файлам, включая в конце концов их самих и их расширение и сохранять это в файл ArchiveInvalidation.txt, желательно - без заменения предыдущего файла, а просто путем его дополнения?.. Например, выбираю я в, например, в ShellTreeView директорию, нажимаю Button и все пути к файлам в ней (директории) заносятся в AI.txt. ... |
|
#2
|
||||
|
||||
|
для этой самой кнопки пропиши это:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
dir: String;
procedure AddFile(const f: String);
begin
Memo1.Lines.Add(f); //здесь добавляй найденный файл f куда надо
end;
procedure AddDir(const d: String);
var
rec: TSearchRec;
a: Integer;
b: String;
begin
if not(DirectoryExists(d))then Exit;
a := FindFirst(d+'\*', faAnyFile or not faSymLink, rec);
while(FindNext(rec)=0)do
begin
if(rec.Name='.')or(rec.Name='..')then Continue;
b := d+'\'+rec.Name;
if(FileExists(b))then
AddFile(b)
else
if(DirectoryExists(b))then
AddDir(b);
end;
end;
begin
dir := sShellTreeView1.SelectedFolder.PathName;
Memo1.Lines.Clear;
AddDir(dir);
end;может быть 5 минут моего времени стоит хотя бы "+"? ![]() |
|
#3
|
|||
|
|||
|
Пасиб! Счас проверю... )))
P.S. "+" - это отзыв? Я тут просто недавно... )))))) |
|
#4
|
||||
|
||||
|
да, справа сверху от сообщения
|