Add g_file_query_file_type convenience function to query the type of a
authorMatthias Clasen <mclasen@redhat.com>
Mon, 31 Mar 2008 04:46:22 +0000 (04:46 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Mon, 31 Mar 2008 04:46:22 +0000 (04:46 +0000)
2008-03-30  Matthias Clasen  <mclasen@redhat.com>

        * gio.symbols:
        * gfile.c:
        * gfile.h: Add g_file_query_file_type convenience function
        to query the type of a file.  (#520715, Mikkel Kamstrup Erlandsen)

svn path=/trunk/; revision=6784

docs/reference/ChangeLog
docs/reference/gio/gio-sections.txt
gio/ChangeLog
gio/gfile.c
gio/gfile.h
gio/gio.symbols

index e0030fbec0bb5496e6091fdf0a12fac89077d3f0..b932bdd7ece00335989d21421f2ad0513dd128e4 100644 (file)
@@ -1,3 +1,7 @@
+2008-03-30  Matthias Clasen  <mclasen@redhat.com>
+       
+       * gio/gio-sections.txt: Add g_file_query_file_type.
+
 2008-03-30  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/glib-sections.txt:
index 6e111ed7fd0245bd91f43296b45e6386af3ef41d..abce363f795fc1b5b1a4fa080f50d603f1114096 100644 (file)
@@ -70,6 +70,7 @@ g_file_query_info
 g_file_query_info_async
 g_file_query_info_finish
 g_file_query_exists
+g_file_query_file_type
 g_file_query_filesystem_info
 g_file_query_filesystem_info_async
 g_file_query_filesystem_info_finish
index 2cdebd230585fd6572729053416febf618e71b3d..52e0bc76f90ed45465e10c791d4107871893ae0a 100644 (file)
@@ -1,3 +1,10 @@
+2008-03-30  Matthias Clasen  <mclasen@redhat.com>
+
+       * gio.symbols:
+       * gfile.c:
+       * gfile.h: Add g_file_query_file_type convenience function
+       to query the type of a file.  (#520715, Mikkel Kamstrup Erlandsen)
+
 2008-03-30  Matthias Clasen  <mclasen@redhat.com>
 
        * gfileenumerator.c:
index b15167da9f4d52c16da4d9a3d57d71f50ffa7415..e8815547b5426a279d13b503bf77f4d3f3c6577d 100644 (file)
@@ -931,8 +931,7 @@ g_file_query_exists (GFile *file,
   g_return_val_if_fail (G_IS_FILE(file), FALSE);
   
   info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_TYPE,
-                           G_FILE_QUERY_INFO_NONE,
-                           cancellable, NULL);
+                           G_FILE_QUERY_INFO_NONE, cancellable, NULL);
   if (info != NULL)
     {
       g_object_unref (info);
@@ -942,6 +941,45 @@ g_file_query_exists (GFile *file,
   return FALSE;
 }
 
+/**
+ * g_file_query_file_type:
+ * @file: input #GFile.
+ * @flags: a set of #GFileQueryInfoFlags passed to g_file_query_info().
+ * @cancellable: optional #GCancellable object, %NULL to ignore.
+ *
+ * Utility function to inspect the #GFileType of a file. This is
+ * implemented using g_file_query_info() and as such does blocking I/O.
+ *
+ * The primary use case of this method is to check if a file is a regular file,
+ * directory, or symlink.
+ * 
+ * Returns: The #GFileType of the file and #G_FILE_TYPE_UNKNOWN if the file
+ *          does not exist
+ *
+ * Since: 2.18
+ */
+GFileType
+g_file_query_file_type (GFile *file,
+                        GFileQueryInfoFlags   flags,
+                       GCancellable *cancellable)
+{
+  GFileInfo *info;
+  GFileType file_type;
+  
+  g_return_val_if_fail (G_IS_FILE(file), FALSE);
+  info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_TYPE, flags,
+                           cancellable, NULL);
+  if (info != NULL)
+    {
+      file_type = g_file_info_get_file_type (info);
+      g_object_unref (info);
+    }
+  else
+    file_type = G_FILE_TYPE_UNKNOWN;
+  
+  return file_type;
+}
+
 /**
  * g_file_query_info:
  * @file: input #GFile.
index a67b72eb7bb97db8e9ede118059ec6290ee7586f..d93fe6738f55a73cff5bc76707ed2a9b400a4a6f 100644 (file)
@@ -646,6 +646,9 @@ GFileOutputStream *     g_file_replace_finish             (GFile
                                                           GError                    **error);
 gboolean                g_file_query_exists               (GFile                      *file,
                                                           GCancellable               *cancellable);
+GFileType               g_file_query_file_type            (GFile                      *file,
+                                                           GFileQueryInfoFlags         flags,
+                                                           GCancellable               *cancellable);
 GFileInfo *             g_file_query_info                 (GFile                      *file,
                                                           const char                 *attributes,
                                                           GFileQueryInfoFlags         flags,
index 9f8de2fcef484c08ab78e65b48b007d4019a7719..618f94e329c597e762ab5044b6eedc47f7c3e867 100644 (file)
@@ -252,6 +252,7 @@ g_file_query_exists
 g_file_query_info
 g_file_query_info_async
 g_file_query_info_finish
+g_file_query_file_type
 g_file_query_filesystem_info
 g_file_query_filesystem_info_async
 g_file_query_filesystem_info_finish