Ejemplo n.º 1
0
        public static List <STFTPFiles> FileListFormFTPDirectory(string DirectoryPath)
        {
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(GetAddress() + DirectoryPath);

            SetNetworkCreadentials(request);
            request.Method = WebRequestMethods.Ftp.ListDirectory;

            StreamReader streamReader = new StreamReader(request.GetResponse().GetResponseStream());

            string fileName = streamReader.ReadLine();

            List <STFTPFiles> files = new List <STFTPFiles>();

            while (fileName != null)
            {
                STFTPFiles data = new STFTPFiles();
                data.Name = fileName;
                files.Add(data);
                fileName = streamReader.ReadLine();
            }

            request      = null;
            streamReader = null;
            return(files);
        }
Ejemplo n.º 2
0
        public static List <STFTPFiles> FileListFormFTPDirectoryDetails(string DirectoryPath)
        {
            FtpWebRequest _fwr = (FtpWebRequest)WebRequest.Create(GetAddress() + DirectoryPath) as FtpWebRequest;

            SetNetworkCreadentials(_fwr);
            _fwr.UseBinary  = true;
            _fwr.UsePassive = true;
            _fwr.KeepAlive  = true;
            _fwr.Method     = WebRequestMethods.Ftp.ListDirectoryDetails;
            StreamReader _sr = new StreamReader(_fwr.GetResponse().GetResponseStream(), System.Text.Encoding.UTF8);

            List <STFTPFiles> files = new List <STFTPFiles>();
            STFTPFiles        data  = new STFTPFiles();

            data._dirlist  = new List <object>();
            data._attlist  = new List <object>();
            data._datelist = new List <object>();
            data._szlist   = new List <long>();

            while (!_sr.EndOfStream)
            {
                Debug.Log(_sr.ReadLine());
                string[] buf = _sr.ReadLine().Split(' ');
                //string Att, Dir;
                int  numcnt = 0, offset = 4;
                long sz = 0;
                for (int i = 0; i < buf.Length; i++)
                {
                    //Count the number value markers, first before the ftp markers and second
                    //the file size.
                    if (long.TryParse(buf[i], out sz))
                    {
                        numcnt++;
                    }
                    if (numcnt == 2)
                    {
                        //Get the attribute
                        string cbuf = "", dbuf = "", abuf = "";
                        if (buf[0][0] == 'd')
                        {
                            abuf = "Dir";
                        }
                        else
                        {
                            abuf = "File";
                        }
                        //Get the Date
                        if (!buf[i + 3].Contains(":"))
                        {
                            offset++;
                        }
                        for (int j = i + 1; j < i + offset; j++)
                        {
                            dbuf += buf[j];
                            if (j < buf.Length - 1)
                            {
                                dbuf += " ";
                            }
                        }
                        //Get the File/Dir name
                        for (int j = i + offset; j < buf.Length; j++)
                        {
                            cbuf += buf[j];
                            if (j < buf.Length - 1)
                            {
                                cbuf += " ";
                            }
                        }
                        //Store to a list.
                        data._dirlist.Add(cbuf);
                        data._attlist.Add(abuf);
                        data._datelist.Add(dbuf);
                        data._szlist.Add(sz);

                        offset = 0;
                        break;
                    }
                }
            }

            files.Add(data);

            return(files);
        }