Пример #1
0
        public void ReadDirDir()
        {
            CIFSDirInfo dirinfo = nc.ReadDir(share1);

            string[] pro = new string[] { "subcarpeta" };
            string[] res = dirinfo.GetDirectories();


            if (pro.Length <= res.Length)
            {
                for (int x = 0; x < pro.Length; x++)
                {
                    if (pro[x] != res[x])
                    {
                        Assert.IsTrue(false);
                    }
                }
            }
            else
            {
                Assert.IsTrue(false);
            }

            Assert.IsTrue(true);
        }
        /// <summary>
        /// Llegeix el contingut d'una carpeta
        /// </summary>
        /// <param name="path">
        /// Ruta de la carpeta que es vol llegir <see cref="System.String"/>
        /// </param>
        /// <returns>
        /// Informació del directori<see cref="CIFSDirInfo"/>
        /// </returns>
        public CIFSDirInfo ReadDir(string UNCpath)
        {
            CIFSDirInfo dirinfo = new CIFSDirInfo();


            DirectoryInfo dir = new DirectoryInfo(UNCpath);

            DirectoryInfo[] dirs = dir.GetDirectories();
            FileInfo[]      fi   = dir.GetFiles();

            if (fi != null)
            {
                foreach (FileInfo f in fi)
                {
                    dirinfo.addFile(f.Name);
                }
            }
            if (dirs != null)
            {
                foreach (DirectoryInfo d in dirs)
                {
                    dirinfo.addDir(d.Name);
                }
            }
            return(dirinfo);
        }
Пример #3
0
        public void ReadDirFiles()
        {
            CIFSDirInfo dirinfo = nc.ReadDir(share1);

            string[] pro = new string[] { "file5.jpg", "file2.txt" };
            string[] res = dirinfo.GetFiles();


            if (pro.Length <= res.Length)
            {
                for (int x = 0; x < pro.Length; x++)
                {
                    if (pro[x] != res[x])
                    {
                        Assert.IsTrue(false);
                    }
                }
            }
            else
            {
                Assert.IsTrue(false);
            }

            Assert.IsTrue(true);
        }
Пример #4
0
        /// <summary>
        /// Llegeix el contingut d'una carpeta
        /// </summary>
        /// <param name="UNCpath">
        /// Ruta de la carpeta que es vol llegir <see cref="System.String"/>
        /// </param>
        /// <returns>
        /// Informació del directori<see cref="CIFSDirInfo"/>
        /// </returns>
        public CIFSDirInfo ReadDir(string UNCpath)
        {
            CIFSDirInfo dirinfo = new CIFSDirInfo();

            int dh = 0;

            dh = WrapperSambaClient.smbc_opendir(@"smb:" + parseUNCPath(UNCpath));
            if (dh < 0)
            {
                System.Console.WriteLine(Stdlib.GetLastError().ToString());
                if (Stdlib.GetLastError().ToString() == "EACCES" || Stdlib.GetLastError().ToString() == "EROFS")
                {
                    throw new UnauthorizedAccessException(Stdlib.GetLastError().ToString());
                }
                if (Stdlib.GetLastError().ToString() == "EINVAL" || Stdlib.GetLastError().ToString() == "ENOENT")
                {
                    throw new DirectoryNotFoundException(Stdlib.GetLastError().ToString());
                }
                if (Stdlib.GetLastError().ToString() == "EXDEV")
                {
                    throw new ArgumentException(Stdlib.GetLastError().ToString());
                }
            }
            else
            {
                IntPtr dirbuf = new IntPtr();

                dirbuf = WrapperSambaClient.smbc_readdir(dh);
                while (dirbuf != IntPtr.Zero)                                                              //recorrem tot el directori
                {
                    SambaDirInfo dir = (SambaDirInfo)Marshal.PtrToStructure(dirbuf, typeof(SambaDirInfo)); //passem el punter a l'estructura
                    dirbuf = WrapperSambaClient.smbc_readdir(dh);

                    //s'ha de controlar quin tipus de recurs s'està llegint

                    System.Console.WriteLine();
                    if (dir.smbc_type == 7 || dir.smbc_type == 8)
                    {
                        if (dir.name != ".." && dir.name != ".")
                        {
                            if (dir.smbc_type == 7)
                            {
                                dirinfo.addDir(dir.name);                                 //afegim el nom del directori a la matriu de directoris del objecte CIFSDirInfo
                            }
                            if (dir.smbc_type == 8)
                            {
                                dirinfo.addFile(dir.name);                                 //afegim el nom del fitxer a la matriu de fitxers del objecte CIFSDirInfo
                            }
                        }
                    }
                }

                WrapperSambaClient.smbc_closedir(dh);
            }


            return(dirinfo);
        }
Пример #5
0
		/// <summary>
		/// Llegeix el contingut d'una carpeta
		/// </summary>
		/// <param name="UNCpath">
		/// Ruta de la carpeta que es vol llegir <see cref="System.String"/>
		/// </param>
		/// <returns>
		/// Informació del directori<see cref="CIFSDirInfo"/>
		/// </returns>		
		public CIFSDirInfo ReadDir(string UNCpath){
			
			CIFSDirInfo dirinfo = new CIFSDirInfo(); 
			
			int dh=0;
			dh=WrapperSambaClient.smbc_opendir(@"smb:"+parseUNCPath(UNCpath));
			if (dh<0){
				System.Console.WriteLine(Stdlib.GetLastError().ToString());
				if (Stdlib.GetLastError().ToString()=="EACCES" || Stdlib.GetLastError().ToString()=="EROFS")
					throw new UnauthorizedAccessException (Stdlib.GetLastError().ToString());
				if (Stdlib.GetLastError().ToString()=="EINVAL" || Stdlib.GetLastError().ToString()=="ENOENT")
					throw new DirectoryNotFoundException(Stdlib.GetLastError().ToString());
				if (Stdlib.GetLastError().ToString()=="EXDEV")
					throw new ArgumentException(Stdlib.GetLastError().ToString());
			}
			else{
			
				IntPtr dirbuf = new IntPtr();
		    
			dirbuf= WrapperSambaClient.smbc_readdir(dh);
			while(dirbuf!= IntPtr.Zero){ //recorrem tot el directori
				 SambaDirInfo dir = (SambaDirInfo)Marshal.PtrToStructure(dirbuf, typeof(SambaDirInfo)); //passem el punter a l'estructura
				 dirbuf= WrapperSambaClient.smbc_readdir(dh);
				 
				 //s'ha de controlar quin tipus de recurs s'està llegint
				
				 System.Console.WriteLine();	
				 if (dir.smbc_type ==7 || dir.smbc_type==8){
					if (dir.name!=".." && dir.name!="."){
							if (dir.smbc_type ==7)
								dirinfo.addDir(dir.name); //afegim el nom del directori a la matriu de directoris del objecte CIFSDirInfo
							if (dir.smbc_type ==8)
								dirinfo.addFile(dir.name); //afegim el nom del fitxer a la matriu de fitxers del objecte CIFSDirInfo
						}
				}
						
			}
	
			WrapperSambaClient.smbc_closedir(dh);
			}


			return dirinfo;
			
		}
Пример #6
0
        /// <summary>
        /// Llegeix el contingut d'una carpeta
        /// </summary>
        /// <param name="path">
        /// Ruta de la carpeta que es vol llegir <see cref="System.String"/>
        /// </param>
        /// <returns>
        /// Informació del directori<see cref="CIFSDirInfo"/>
        /// </returns>		
        public CIFSDirInfo ReadDir(string UNCpath)
        {
            CIFSDirInfo dirinfo = new CIFSDirInfo();

            DirectoryInfo dir = new DirectoryInfo(UNCpath);
            DirectoryInfo[] dirs = dir.GetDirectories();
            FileInfo[] fi = dir.GetFiles();

            if(fi!=null)
            {
                foreach(FileInfo f in fi)
                {
                    dirinfo.addFile(f.Name);
                }
            }
            if(dirs!=null)
            {
                foreach(DirectoryInfo d in dirs)
                {
                    dirinfo.addDir(d.Name);
                }
            }
            return dirinfo;
        }
Пример #7
0
 public void ReadDirError()
 {
     //No existeix el directory
     CIFSDirInfo dirinfo = nc.ReadDir(share1 + @"newDirectory3");
 }