cifsclient


CIFSClient is .NET/mono compatible library to work with CIFS (samba) servers

CIFSClient

This library has been created to add some features unavailable at the moment in Mono implementation of C# .

At same time, CIFSClient make more easy migration aplications who work with servers CIFS (Samba).

CIFSClient it's a C# wrapper of C samba libs and win32 libs.

CIFSClient works transparently with shared files, and use functions who all developers know.

Avaible functions:

Copy (string, string, bool) CreateDirectory (string) Delete (string) DeleteDirectory (string) DirectoryExists(string) : bool Exists (string) : bool Move (string, string) ReadDir (string) : CIFSDirInfo Rename (string, string) RenameDirectory(string, string) ShareEnum (string) : Shares

Requeriments:

  • Kernel 2.6 1
  • Mono version 1.2.x or great
  • SambaClient version 2 or great

Example code:

using System; using CIFSClient; //utilitzem el namespace CIFSClient using System.IO; namespace Exemple { class MainClass { public static void Main(string[] args) { //ruta remota string remot="//jmartin-desktop/fotos/"; //ruta local string local="temp"; //text de sortida string restext=""; //text per guardar l'extensió dels fitxer string ext=""; //si no existeix la carpeta local la crea if (!Directory.Exists(local)){ Directory.CreateDirectory(local); } //instanciar un objecte de la biblioteca Cifs cifs = new Cifs(); try{ //llegim el contingut del directori remot CIFSDirInfo rdir = cifs.ReadDir(remot); //recorrem tots els fitxers foreach(String file in rdir.GetFiles() ){ ext=file.Split('.')[1]; //mirem si tenen l'extensió jpg if (ext=="jpg"){ //copiem el fitxer remot a la carpeta local (permetem reescriure) cifs.Copy(remot+file,local+"/"+file,true); restext+="S'ha copiat el fitxer remot ("+remot+file+ ")"; restext+="a ("+local+"/"+file+")"; restext+=System.Environment.NewLine; } } } //controlem la excepció en cas que no tenir permisos per navegar la carpeta. catch (UnauthorizedAccessException e){ restext+="Error: No hi ha permisos per realitzar aquesta comanda."; restext+=System.Environment.NewLine; } //controlem l'excepció en cas de no existir la carpeta remota o local catch (System.IO.DirectoryNotFoundException e){ restext+="Error: No s'ha trobat el directori."; restext+=System.Environment.NewLine; } //controlem l'excepció en cas de no poder llegir ho escriure els fitxers catch (System.IO.IOException e){ restext+="Error: Al sistema de fitxers."; restext+=System.Environment.NewLine; } //controlem de forma genèrica qualsevol altra excepció catch (Exception e){ restext+="Error: No definit."; restext+=System.Environment.NewLine; } System.Console.WriteLine(restext); } } }

At this example CIFSClient helps to search all JPG images in one folder and copy them in local temp folder.

Project Information

Labels:
API Csharp Samba Mono Linux cifs