示例#1
0
 private IEnumerable<SafeUri> GetFiles(GLib.IFile dir, bool followSymlinks)
 {
     var enumerator = dir.EnumerateChildren ("standard::type,standard::name", followSymlinks ? FileQueryInfoFlags.None : FileQueryInfoFlags.NofollowSymlinks, null);
     foreach (FileInfo file in enumerator) {
         if ((file.FileType & FileType.Regular) != 0) {
             var ret = new SafeUri (System.IO.Path.Combine (dir.Path, file.Name), false);
             file.Dispose ();
             yield return ret;
         } else {
             file.Dispose ();
         }
     }
     if (!enumerator.IsClosed) {
         enumerator.Close (null);
         enumerator.Dispose ();
     }
 }
示例#2
0
文件: Photo.cs 项目: Yetangitu/f-spot
 private bool DirectoryIsEmpty(GLib.File directory)
 {
     uint count = 0;
     GLib.FileEnumerator list = directory.EnumerateChildren ("standard::name",
         GLib.FileQueryInfoFlags.None, null);
     foreach (var item in list) {
         count++;
     }
     return count == 0;
 }
 private IEnumerable<string> GetDirectories (GLib.File dir, bool followSymlinks)
 {
     var enumerator = dir.EnumerateChildren ("standard::type,standard::name", followSymlinks ? FileQueryInfoFlags.None : FileQueryInfoFlags.NofollowSymlinks, null);
     foreach (FileInfo file in enumerator) {
         if ((file.FileType & FileType.Directory) != 0) {
             var ret = dir.Uri.AbsoluteUri + "/" + Uri.EscapeDataString (file.Name);
             file.Dispose ();
             yield return ret;
         } else {
             file.Dispose ();
         }
     }
     if (!enumerator.IsClosed) {
         enumerator.Close (null);
         enumerator.Dispose ();
     }
 }