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 (); } }
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 (); } }