Як дізнатися розширення файлу, якщо розширення було змінено

2 Reindeer Moss Eater
ExtractFileExt, наскільки я зрозумів, просто з імені файлу бере розширення від роздільник, і якщо розширення вручну поміняти, то це розширення і покаже. А мені треба визначити, що було на початку

ТО що було спочатку цієї ж функцією визначається

Або ти думаєш, що в понеділок одна функція, у вівторок - інша?

Я трохи інше мав на увазі. Був файл припустимо * .ARJ, йому поставили розширення, припустимо * .DOC. ExtractFileExt повертає ".DOC", а мені потрібно щоб повернуло "* .ARJ". Чи реально це?

Того файлу вже немає.
Якщо перевести твоє запитання на нормальну мову, то вийде:

"Як дізнатися розширення у файлу, якого немає"

Як варіант для відстеження перейменування файлів можу запропонувати використовувати механізм журналу змін NTFS. Якщо, звичайно, шкурка варта вичинки.

Просто так ти формат файлу не дізнаєшся. Можна спробувати прочитати кілька перших байтів у файлі. Там зазвичай в заголовку прописаний формат файлу.

А як тоді Far розуміє, що у файлу було розширення * .ARJ, і показує вміст архіву, хоча поточний розширення файлу стоїть * .fax.


> DmiSb # XA0; (14.12.05 10:19) [9]
>
> А як тоді Far розуміє, що у файлу було розширення *.
> ARJ, і показує вміст архіву, хоча поточний розширення
> Файлу стоїть * .fax.

FAR визначає формат файлу по сигнатурі.

> FAR визначає формат файлу по сигнатурі.

А це цікаво як (хоча б в загальних рисах, приблизно)?


> DmiSb # XA0; (14.12.05 10:34) [11]
>
> 2 BiN
>
>> FAR визначає формат файлу по сигнатурі.
>
> А це цікаво як (хоча б в загальних рисах, приблизно)?
>

Наскільки я знаю, поширені алгоритми стиснення даних і опис форматів файлів arg, rar, zip, cab і т.п. можна знайти в мережі.
Зазвичай подібні файли містять на початку заголовок з деяким специфічним набором символів - сигнатурою, по якій імовірно визначається формат файлу і соответсвенно алгоритм стиснення / відкриття оного.

DmiSb # XA0; (14.12.05 8:51)
DmiSb

Розпізнавати якусь постійну сигнатуру, властиву файлів конкретного типу.

З питання, нехай було якесь з цих розширень txt, log, prn etc
то тут ніякі сигнатури не допоможуть, як не допоможуть і для інших, але для інших можна дізнатися тип файлу, але не старе розширення.

Текстові фали теж можна визначити. Для цього треба проаналізувати частоту появи # 13 # 10 і відсоток наявності друкованих символів.

Але старе розширення дізнатися не можна.

Имхо, черговий приклад марною боротьби АП за "грамотне виклад сабжа" і чергове нерозуміння форумчанами її суті. (

Схожі статті