Существует ли простой способ определить тип файла, не зная расширение файла?

Вы можете использовать курсор следующим образом:

FOR CUR IN (  SELECT
        s.site
        ,s.client
        ,p.name_comment
        ,s.identification
        ,to_char(s.last_print, 'DD/MM/RRRR HH24:MM:SS')
    FROM
        is_spool_dir s
        ,is_prints_name p
    WHERE
       to_char(s.last_print, 'DD/MM/YYYY') like '18/01/2019'
       and s.site = '7'
       and s.client = 'BREV'
       and s.identification like 'BREZ%'
       and p.id = s.report_id
    ORDER BY
       to_char(s.last_print, 'DD/MM/YYYY'))

       LOOP

      NULL;
      --use CUR.site HERE FOR YOUR OPERATIONS ...

      END LOOP;
7
задан MusiGenesis 25 November 2008 в 22:44
поделиться

7 ответов

можно использовать эти инструменты для нахождения формата файла.

Анализатор файла http://www.softpedia.com/get/Programming/Other-Programming-Files/File-Analyzer.shtml

Какой формат http://www.jozy.nl/whatfmt.html

Анализатор формата файла PE http://peid.has.it/

Этот веб-сайт может быть полезным для Вас. http://mark0.net/onlinetrid.aspx

Примечание: я включал ссылки на загрузку, чтобы удостовериться, что Вы получаете правильное название инструмента и информацию.

проверьте источник перед загрузкой их.

я использовал инструмент в прошлом, я думаю, что это - Анализатор Файла, который скажет Вам самое близкое соответствие.

счастливые инструменты.

8
ответ дан 6 December 2019 в 07:53
поделиться

Это не полный ответ, а место для запуска было бы библиотекой "магических чисел". Это исследует первые несколько байтов файла для определения "магического числа", которое сравнено с известным списком их. Это (по крайней мере, часть) как file команда на системных работах Linux.

6
ответ дан 6 December 2019 в 07:53
поделиться

Кто-то еще задал подобный вопрос и отправил код, используемый, чтобы сделать точно это. Необходимо смочь взять то, что отправляется здесь, и немного измените его так, чтобы это вытянуло от базы данных.

https://stackoverflow.com/questions/58510

В дополнение к этому похоже, что кто-то записал библиотеку, базирующуюся прочь магических чисел, чтобы сделать это, однако, похоже, что сайт требует регистрации и некоторой формы альтернативного доступа для загрузки этого lirbary. Документация доступна бесплатно без регистрации, которая может быть полезной.

http://software.topcoder.com/catalog/c_component.jsp?comp=13249160&ver=2

4
ответ дан 6 December 2019 в 07:53
поделиться

Самым легким путем я знаю, должен использовать файл, управляют, чтобы это было также доступно в Windows с Cygwin.

2
ответ дан 6 December 2019 в 07:53
поделиться

Много типов файлов имеет четко определенные заголовки, которые начинают файл. Вы могли проверить первые несколько байтов для проверки, чтобы видеть, как файл начинается.

1
ответ дан 6 December 2019 в 07:53
поделиться

Самый легкий способ сделать это было бы через доступ к *, отклоняют (или cygwin) систему, которая имеет команду 'файла':

$ file visitors.*
visitors.html: HTML document text
visitors.png:  PNG image data, 5360 x 2819, 8-bit colormap, non-interlaced

Вы могли записать приложение C#, которое передало первые X байты по каналу каждого столбца двоичных данных к команде файла (использующий - как имя файла)

1
ответ дан 6 December 2019 в 07:53
поделиться

Необходимо использовать некоторый p/invoke interop код для вызова метода SHGetFileInfo от API Win32. Эта статья может также помочь.

1
ответ дан 6 December 2019 в 07:53
поделиться