mirror of
https://github.com/Ryujinx/GtkSharp.git
synced 2025-02-02 12:31:05 +00:00
2004-11-01 Jeroen Zwartepoorte <jeroen@xs4all.nl>
* gnomevfs/Directory.cs: New Create and Delete methods. Free the FileInfo List returned by gnome_vfs_directory_list_load. * gnomevfs/FileInfo.cs: Copy the FileInfoNative struct so the original can be properly freed. * gnomevfs/Vfs.cs: Move MakeDirectory and RemoveDirectory to Directory. svn path=/trunk/gtk-sharp/; revision=35535
This commit is contained in:
parent
cdfc01223a
commit
c551f4c479
|
@ -1,3 +1,11 @@
|
|||
2004-11-01 Jeroen Zwartepoorte <jeroen@xs4all.nl>
|
||||
|
||||
* gnomevfs/Directory.cs: New Create and Delete methods. Free the
|
||||
FileInfo List returned by gnome_vfs_directory_list_load.
|
||||
* gnomevfs/FileInfo.cs: Copy the FileInfoNative struct so the original
|
||||
can be properly freed.
|
||||
* gnomevfs/Vfs.cs: Move MakeDirectory and RemoveDirectory to Directory.
|
||||
|
||||
2004-11-01 Jeroen Zwartepoorte <jeroen@xs4all.nl>
|
||||
|
||||
* gnomevfs/Directory.cs: Bind gnome_vfs_directory_list_load as a static
|
||||
|
|
|
@ -13,9 +13,6 @@ using System.Runtime.InteropServices;
|
|||
|
||||
namespace Gnome.Vfs {
|
||||
public class Directory {
|
||||
[DllImport ("gnomevfs-2")]
|
||||
private static extern Result gnome_vfs_directory_list_load (out IntPtr list, string uri, FileInfoOptions options);
|
||||
|
||||
public static FileInfo[] GetEntries (Uri uri)
|
||||
{
|
||||
return GetEntries (uri.ToString ());
|
||||
|
@ -31,6 +28,12 @@ namespace Gnome.Vfs {
|
|||
return GetEntries (text_uri, FileInfoOptions.Default);
|
||||
}
|
||||
|
||||
[DllImport ("gnomevfs-2")]
|
||||
private static extern Result gnome_vfs_directory_list_load (out IntPtr list, string uri, FileInfoOptions options);
|
||||
|
||||
[DllImport ("gnomevfs-2")]
|
||||
private static extern void gnome_vfs_file_info_list_free (IntPtr list);
|
||||
|
||||
public static FileInfo[] GetEntries (string text_uri, FileInfoOptions options)
|
||||
{
|
||||
IntPtr raw_ret;
|
||||
|
@ -41,8 +44,35 @@ namespace Gnome.Vfs {
|
|||
FileInfo[] entries = new FileInfo [list.Count];
|
||||
for (int i = 0; i < list.Count; i++)
|
||||
entries[i] = new FileInfo ((FileInfo.FileInfoNative) list [i]);
|
||||
gnome_vfs_file_info_list_free (raw_ret);
|
||||
|
||||
return entries;
|
||||
}
|
||||
|
||||
[DllImport ("gnomevfs-2")]
|
||||
private static extern Result gnome_vfs_make_directory (string uri, uint perm);
|
||||
|
||||
public static Result Create (Uri uri, uint perm)
|
||||
{
|
||||
return Create (uri.ToString (), perm);
|
||||
}
|
||||
|
||||
public static Result Create (string uri, uint perm)
|
||||
{
|
||||
return gnome_vfs_make_directory (uri, perm);
|
||||
}
|
||||
|
||||
[DllImport ("gnomevfs-2")]
|
||||
private static extern Result gnome_vfs_remove_directory (string uri);
|
||||
|
||||
public static Result Delete (Uri uri)
|
||||
{
|
||||
return Delete (uri.ToString ());
|
||||
}
|
||||
|
||||
public static Result Delete (string uri)
|
||||
{
|
||||
return gnome_vfs_remove_directory (uri);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -41,22 +41,19 @@ namespace Gnome.Vfs {
|
|||
}
|
||||
|
||||
private FileInfoNative info;
|
||||
private Uri uri;
|
||||
private FileInfoOptions options;
|
||||
|
||||
[DllImport ("gnomevfs-2")]
|
||||
extern static FileInfoNative gnome_vfs_file_info_new ();
|
||||
|
||||
[DllImport ("gnomevfs-2")]
|
||||
private static extern Result gnome_vfs_get_file_info_uri (IntPtr uri, ref FileInfoNative info, FileInfoOptions options);
|
||||
extern static void gnome_vfs_file_info_copy (ref FileInfoNative dest, ref FileInfoNative src);
|
||||
|
||||
[DllImport ("gnomevfs-2")]
|
||||
extern static void gnome_vfs_file_info_unref (ref FileInfoNative info);
|
||||
private static extern Result gnome_vfs_get_file_info_uri (IntPtr uri, ref FileInfoNative info, FileInfoOptions options);
|
||||
|
||||
internal FileInfo (FileInfoNative info)
|
||||
{
|
||||
this.info = info;
|
||||
uri = null;
|
||||
gnome_vfs_file_info_copy (ref this.info, ref info);
|
||||
}
|
||||
|
||||
public FileInfo (string uri) : this (uri, FileInfoOptions.Default) {}
|
||||
|
@ -67,14 +64,12 @@ namespace Gnome.Vfs {
|
|||
|
||||
public FileInfo (Uri uri, FileInfoOptions options)
|
||||
{
|
||||
this.uri = uri;
|
||||
this.options = options;
|
||||
info = gnome_vfs_file_info_new ();
|
||||
|
||||
Result result = gnome_vfs_get_file_info_uri (uri.Handle, ref info, options);
|
||||
Vfs.ThrowException (uri, result);
|
||||
}
|
||||
|
||||
|
||||
public string Name {
|
||||
get {
|
||||
if (info.name != IntPtr.Zero)
|
||||
|
@ -265,12 +260,6 @@ namespace Gnome.Vfs {
|
|||
}
|
||||
}
|
||||
|
||||
public void Update ()
|
||||
{
|
||||
Result result = gnome_vfs_get_file_info_uri (uri.Handle, ref info, options);
|
||||
Vfs.ThrowException (uri, result);
|
||||
}
|
||||
|
||||
public override String ToString ()
|
||||
{
|
||||
string result = "Name = " + Name + "\n" +
|
||||
|
|
|
@ -58,22 +58,6 @@ namespace Gnome.Vfs {
|
|||
return gnome_vfs_move (old_uri, new_uri, force_replace);
|
||||
}
|
||||
|
||||
[DllImport ("gnomevfs-2")]
|
||||
private static extern Result gnome_vfs_make_directory (string uri, uint perm);
|
||||
|
||||
public static Result MakeDirectory (string uri, uint perm)
|
||||
{
|
||||
return gnome_vfs_make_directory (uri, perm);
|
||||
}
|
||||
|
||||
[DllImport ("gnomevfs-2")]
|
||||
private static extern Result gnome_vfs_remove_directory (string uri);
|
||||
|
||||
public static Result RemoveDirectory (string uri)
|
||||
{
|
||||
return gnome_vfs_remove_directory (uri);
|
||||
}
|
||||
|
||||
[DllImport ("gnomevfs-2")]
|
||||
private static extern Result gnome_vfs_unlink (string uri);
|
||||
|
||||
|
|
Loading…
Reference in a new issue