Bugfix (Determining file type)

develop
Самоукин Алексей 14 years ago
parent ee88171ee2
commit 39adbd124d

@ -23,12 +23,12 @@ import subprocess
from subprocess import Popen,PIPE,STDOUT from subprocess import Popen,PIPE,STDOUT
import stat import stat
from shutil import copytree, rmtree from shutil import copytree, rmtree
import ctypes
import cl_overriding import cl_overriding
import re import re
import sys import sys
import getpass import getpass
from types import StringType from types import StringType
import magic as type_file
import cl_lang import cl_lang
tr = cl_lang.lang() tr = cl_lang.lang()
@ -56,21 +56,17 @@ class typeFile:
"""Получение типа файла""" """Получение типа файла"""
def __init__(self, magic=0x410): def __init__(self, magic=0x410):
# Загружаем libmagic.so self.magicObject = type_file.open(type_file.MAGIC_NONE)
self.lib = ctypes.cdll.LoadLibrary("libmagic.so") self.magicObject.load()
self.lib.error.restype = ctypes.c_char_p self.magicObject.setflags(magic)
self.lib.magic_file.restype = ctypes.c_char_p
# 0x10 | 0x400 = MAGIC_MIME (константа, декларируется в magic.h)
self.magic = self.lib.magic_open(magic)
self.lib.magic_load(self.magic, None)
def __del__(self): def __del__(self):
"""Закрываем magic""" """Закрываем magic"""
self.lib.magic_close(self.magic) self.magicObject.close()
def getMType(self, filename): def getMType(self, filename):
"""Информация о типе файла""" """Информация о типе файла"""
return self.lib.magic_file(self.magic, filename) return self.magicObject.file(filename)
def isBinary(self, filename): def isBinary(self, filename):
"""является ли файл бинарным""" """является ли файл бинарным"""

Loading…
Cancel
Save