How to use the NFS Client c# Library

类库下载

I add a wiki page that explains how to use the NFS Client c# .net library in your project.

NekoDrive uses a Library written in C# on .NET 2.0. that wraps the C++ NFS implementation. In order to use this library in your project download NekoDrive and copy in your project NekoDrive.NFS.dll, NFSv2.dll and NFSv3.dll. Add a reference in your project to NekoDrive.NFS.dll. Don't forget to include NFSv2.dll and NFSv3.dll as a content to deploy.

you download this library here:

http://code.google.com/p/nekodrive/

EXAMPLE 1 - CONNECT TO NFS SERVER AND GET THE EXPORTED DEVICES

using System;
using System.Collections.Generic;
using System.Text;
using System.Net;
using NekoDrive.NFS;
using NekoDrive.NFS.Wrappers;


namespace Example1
{
   class Program
    {
        static void Main(string[] args)
        {
            using(NFS nfs = new NFS(NFS.NFSVersion.v2))
            {
                if (nfs.Connect(IPAddress.Parse("161.55.201.250")) == NFSResult.NFS_SUCCESS)
                {
                    foreach(string device in nfs.GetExportedDevices())
                        Console.WriteLine(device);
                    nfs.Disconnect();
                }
            }
        }
    }
}

EXAMPLE 2 - CONNECT TO NFS SERVER, MOUNT THE FIRST EXPORTED DEVICE AND GET THE FILE LIST

namespace Example2
{
    class Program
    {
        static void Main(string[] args)
        {
            using(NFS nfs = new NFS(NFS.NFSVersion.v2))
            {
                if (nfs.Connect(IPAddress.Parse("161.55.201.250")) == NFSResult.NFS_SUCCESS)
                {
                    List devices = nfs.GetExportedDevices();
                    if(devices.Count > 0)
                    {
                        if(nfs.MountDevice(devices[0]) == NFSResult.NFS_SUCCESS)
                        {
                            foreach(string item in nfs.GetItemList())
                            {
                                NFSAttributes attrib = nfs.GetItemAttributes(item);
                                Console.WriteLine(item + " " + attrib.cdateTime.ToString() + " " + attrib.size);
                            }
                            nfs.UnMountDevice();
                        }
                    }
                    nfs.Disconnect();
                }
            }
        }
    }
}

EXAMPLE 3 - CONNECT TO NFS SERVER, MOUNT THE FIRST EXPORTED DEVICE AND DOWNLOAD A FILE IN THE ROOT FOLDER (.)

namespace Example3
{
    class Program
    {
        static void Main(string[] args)
        {
            using(NFS nfs = new NFS(NFS.NFSVersion.v2))
            {
                if (nfs.Connect(IPAddress.Parse("161.55.201.250")) == NFSResult.NFS_SUCCESS)
                {
                    List devices = nfs.GetExportedDevices();
                    if(devices.Count > 0)
                    {
                        if(nfs.MountDevice(devices[0]) == NFSResult.NFS_SUCCESS)
                        {
                            if(nfs.Read("test.txt", ".", @"c:\test.txt") != NFSResult.NFS_SUCCESS)
                                Console.WriteLine(nfs.GetLastError());
                            nfs.UnMountDevice();
                        }
                    }
                    nfs.Disconnect();
                }
            }
        }
    }
}

EXAMPLE 4 - CONNECT TO NFS SERVER, MOUNT THE FIRST EXPORTED DEVICE AND UPLOAD A FILE IN THE "TEST/SUB" SUBFOLDER

namespace Example4
{
    class Program
    {
        static void Main(string[] args)
        {
            using(NFS nfs = new NFS(NFS.NFSVersion.v2))
            {
                if (nfs.Connect(IPAddress.Parse("161.55.201.250")) == NFSResult.NFS_SUCCESS)
                {
                    List devices = nfs.GetExportedDevices();
                    if(devices.Count > 0)
                    {
                        if(nfs.MountDevice(devices[0]) == NFSResult.NFS_SUCCESS)
                        {
                            if(nfs.Write("test.txt", "test/sub", @"c:\test.txt") != NFSResult.NFS_SUCCESS)
                                Console.WriteLine(nfs.GetLastError());
                            nfs.UnMountDevice();
                        }
                    }
                    nfs.Disconnect();
                }
            }
        }
    }
}