Re: [pygtk] use gtk.FileChooser to check mime type
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_guesshttps://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 gius...@gmail.com 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 pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/ ___ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
Re: [pygtk] use gtk.FileChooser to check mime type
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 niklas.k...@gmail.com 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_guesshttps://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 gius...@gmail.comwrote: 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 pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/ ___ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/
[pygtk] use gtk.FileChooser to check mime type
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 pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://faq.pygtk.org/