![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 6 Всего: 23 |
Привет!
Нужно так сделать: открыть заданную пользователем папку и переименовать в ней все файлы. Как? А можно так, чтобы он бегал по все папкам в текущей и переименовывал все файлы? ЗЫ Сорри, в делфе не мастак. |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
Информация к размышлению
Процедуры и функции управления файлами FindFirst(const Path: string; Attr: Integer; var F:TSearchRec): Integer - Выделяет в памяти необходимые ресурсы для поиска в каталоге и шаблоне Path (например, c:\MyDir\*.*) файлов, удовлетворяющих шаблону и имеющих атрибуты Attr (см. FileSetAttr). При успешном завершении возвращает 0, в противном случае - код ошибки Windows. Результаты поиска заносятся в запись SearchRec. Из полей этой записи можно извлечь результаты: Time: Integer - время создания файла, Size: Integer - его размер, Attr: Integer - его атрибуты, Name - имя файла и некоторые другие. FindNext(var F: TSearchRec): Integer - Продолжает поиск, начатый функцией FindFirst. Если нашелся новый файл, возвращает 0, в противном случае - код ошибки Windows. Результаты поиска заносятся в запись SearchRec (см. FindFirst). RenameFile(const OldName, NewName: string ): Boolean - Переименовывает файл OldName, давая ему новое имя NewName. При успешном завершении возвращает true. FindClose(var F: TSearchRec) - Освобождает память, выделенную процедурой FindFirst, и прерывает последовательность поиска процедурами FindFirst и FindNext, использующего запись F типа TSearchRec. FileSetAttr(const FileName: string; Attr: Integer): Integer - Задает атрибуты Attr файла FileName. При успешном завершении возвращает 0, в противном случае - код ошибки Windows. При формировании Attr можно складывать по операции OR константы faXXXX FileSearch(Const Name, DirList: string): string - Ищет файл Name в списке каталогов DirList, записанном в формате DOS для PATH: каталоги, разделенные точками с запятой. Если файл найден - возвращается полный путь к нему, в противном случае - пустая строка. FileGetDate(Handle: Integer): Integer - Возвращает в формате DOS дату и время создания файла, определенного своим дескриптором Handle. FileExists(const FileName: string): Boolean - Возвращает true, если существует файл FileName. FileGetAttr(const FileName: string): Integer - Возвращает атрибуты файла FileName. Наличие тех или иных атрибутов может быть проверено сложением по операции AND возвращенного значения с константами faXXXX. FileAge(const FileName: string): Integer - Возвращает время создания файла FileName. ExtractFilePath(const FileName: string): string - Возвращает путь к каталогу (включая указание диска и слэш перед именем файла), вырезанный из строки с полным именем файла FileName. ExtractFileDir - Возвращает путь к каталогу (включая указание диска), вырезанный из строки с полным именем файла FileName. ExtractFileExt - Возвращает символы расширения, вырезанные из строки с полным именем файла FileName. ChangeFileExt - Изменяет расширение файла FileName на Extension. Вообще-то, это все в основном, перевод родного хелпа. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 6 Всего: 23 |
Cashey, вот про FindFirst и FindNext я знаю. Только семантика их туманна. Есть что более наглядное?
|
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
Ну а чего здесь не понятного? В простейшем случае твоя задача решается таким образом:
Закоментирован вариант, когда надо переименовать >1 файла, тогда надо написать ф-цию, которая динамически создает новое имя файла (2 файла с одним именим в одной директории находится не могут) Это сообщение отредактировал(а) Cashey - 17.10.2003, 13:32 -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 6 Всего: 23 |
Cashey, спасибо. В имени файла обязательно прописывать полный путь к нему. Можно так, чтобы без пути?
|
|||
|
||||
| Pakshin A. S. |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 5056 Регистрация: 16.2.2003 Репутация: 21 Всего: 61 |
1) А чем тебя это не устраивает?
2) Зачем делать кому-то такую подлянку, ведь это нехорошо!!! |
|||
|
||||
| December |
|
|||
![]() Antitheorist ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4423 Регистрация: 14.8.2002 Где: Харьков Репутация: 8 Всего: 57 |
NiJazz, лови, довольно удобная процедурина.
|
|||
|
||||
| NiJazz |
|
|||
![]() Jazz coder ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2286 Регистрация: 10.8.2003 Где: Москва Репутация: 6 Всего: 23 |
December, спасибо.
Я пока не читал, но может быть это я пойму из кода. Но спрошу: что сделать для того, чтобы RenameFile не портила расширения файлов? |
|||
|
||||
| <Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Переименовывать, указывая расширение)
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |