Hi Niklas, thank you very much for the tip.
What I finally impleemnted is:
if os.path.isfile(full_element):
gio_file = gio.File(full_element)
gio_file_info = gio_file.query_info("*")
if not cons.IS_WIN_OS:
* mime_types = str(gio_file_info.get_icon())
if "text-" in mime_types:*
self.add_file(full_element)
else:
* mime_type = gio_file_info.get_content_**type()
if mime_type in [".txt", ".TXT"]:*
self.add_file(full_element)
The best way to understand if it's a text file was this, using
.get_content_type()
had too many mime types associated with text files but when going through
the icon
I found a list of mime types that did fit my needs.
On windows OS instead the mime type just returns the file extension so
unfortunately
the implementation is weak, for example a .ini/.cfg file would not be
considered,
I would have to create a long list with all possible text extensions.
Cheers,
Giuseppe.
On Fri, Sep 27, 2013 at 10:25 AM, Niklas Koep <[email protected]> wrote:
> Hey, there are two ways to do this that I can think of off the top of my
> head. One is using
> gio.content_type_guess<https://developer.gnome.org/pygobject/2.28/gio-functions.html#function-gio--content-type-guess>,
> the other (and likely slower albeit more accurate) way would be to use a
> gio.File instance like so:
>
> file_ = gio.File(filename)
> info = file_.query_info("standard::content-type") or equivalently info
> = file_.query_info(gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE)
> mimetype = info.get_content_type()
>
> Regards.
>
>
> On Wed, Sep 25, 2013 at 12:04 AM, Giuseppe Penone <[email protected]>wrote:
>
>> Hi,
>> I'm using gtk.FileChooserDialog with a filter to display only
>> "text/plain" files and this works fine:
>>
>> filter = gtk.FileFilter()
>> filter.add_mime_type("text/plain")
>> chooser.add_filter(filter)
>>
>> But if I need to check if a file is of this mime type, using python
>> module mimetypes is not so good in detecting the proper mime type.
>>
>> Is it possible somehow to use gtk.FileChooser engine to retrieve files
>> with a mime type in a directory without going through the dialog?
>>
>> I tried to do it without running the dialog and just doing:
>>
>> ...
>> chooser.add_filter(filter)
>> chooser.set_current_folder(foldername)
>> chooser.select_all()
>> print chooser.get_filenames()
>>
>> but I always get an empty list, it seems that without chooser.run() it
>> doesn't work, unfortunately I cannot instantiate just a gtk.FileChooser()
>>
>> Cheers,
>> Giuseppe.
>>
>>
>> _______________________________________________
>> pygtk mailing list [email protected]
>> http://www.daa.com.au/mailman/listinfo/pygtk
>> Read the PyGTK FAQ: http://faq.pygtk.org/
>>
>
>
_______________________________________________
pygtk mailing list [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/