Exemple #1
0
        public List <c_FileDataObject> getData()
        {
            List <c_FileDataObject>      files = new List <c_FileDataObject>();
            IEnumerable <RemoteFileInfo> v     = _session.EnumerateRemoteFiles("/var/www/html/ps/wpss", "*", EnumerationOptions.AllDirectories);
            int i = 0;

            foreach (RemoteFileInfo finfo in v)
            {
                c_FileDataObject fo = new c_FileDataObject();

                Console.WriteLine(i.ToString().PadLeft(3, '0') + ": " + finfo.Name);

                fo.FileName     = finfo.Name;
                fo.FilePath     = finfo.FullName.Substring(0, finfo.FullName.LastIndexOf(finfo.FullName.Contains("/") ? "/" : "\\"));
                fo.FileTypeName = (finfo.IsDirectory ? "dir" :  finfo.Name.Substring(finfo.Name.LastIndexOf(".") + 1));
                fo.Modified     = finfo.LastWriteTime;
                fo.Group        = finfo.Group;
                fo.Owner        = finfo.Owner;

                fo.Rights   = finfo.FilePermissions.Octal.ToString().PadLeft(4, '0');
                fo.FileSize = finfo.Length;


                if (fo.FileSize < 1024 * 512)
                {
                    string temp = Path.GetTempPath();

                    if (_session.GetFiles(finfo.FullName, temp + "\\" + fo.FileName).IsSuccess)
                    {
                        Console.WriteLine("\t→ File saved to: [ " + temp + "\\" + fo.FileName + " ]...");
                        fo.FileContents = File.ReadAllText(temp + "\\" + fo.FileName);
                        Console.WriteLine("\t\t→ File contents saved to object...");
                        try
                        {
                            File.Delete(temp + "\\" + fo.FileName);
                            Console.WriteLine("\t\t\t→ File delted...");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("\t\t\t→ File could not be deleted (" + ex.Message + ")");
                        }
                    }
                    else
                    {
                        Console.WriteLine("\t→ File save unsuccessful: [ " + temp + "\\" + fo.FileName + " ]...");
                    }
                }

                files.Add(fo);
                fo = null;
                GC.Collect();
            }

            return(files);
        }
        public void parseAllDataToObject(string str)
        {
            //TODO: FIX
            if (str.Contains("--FILE--"))
            {
                string[] strs = parseAllDataToMulti(str);
                foreach (string s in strs)
                {
                    parseAllDataToObject(s);
                }
            }

            c_FileDataObject fdo       = new c_FileDataObject();
            bool             toComment = false;
            bool             toNotes   = false;

            foreach (string s in str.Split('\n'))
            {
                if (!s.StartsWith("#") && s.Length > 0 && s.Contains("="))
                {
                    string ln = s.Substring(0, s.IndexOf("="));
                    switch (ln)
                    {
                    case "PROJECT":
                        if (int.TryParse(s, out int _i))
                        {
                            fdo.ProjectId = _i;
                        }
                        break;

                    case "FNAME":
                        fdo.FileName = s;
                        break;

                    case "FPATH":
                        fdo.Location = s;
                        break;

                    case "PARAMS":
                        fdo.Parameters = s;
                        break;

                    case "VERSION":
                        fdo.FileVersion = s;
                        break;

                    case "INUSE":
                        fdo.InUse = s == "1" ? true : false;
                        break;

                    case "PATH":
                        fdo.FilePath = s;
                        break;

                    case "IMAGE":
                        fdo.FileImageName = s;
                        break;

                    case "CSTART":
                        toComment = true;
                        break;

                    case "CEND":
                        toComment = false;
                        break;

                    case "NSTART":
                        toNotes = true;
                        break;

                    case "NEND":
                        toNotes = false;
                        break;

                    case "RIGHTS":
                        fdo.Rights = s;
                        break;

                    case "OWNER":
                        fdo.Owner = s;
                        break;

                    case "GROUP":
                        fdo.Group = s;
                        break;

                    case "CREATED":
                        if (DateTime.TryParse(s, out DateTime dtc))
                        {
                            fdo.Created = dtc;
                        }
                        break;

                    case "MODIFIED":
                        if (DateTime.TryParse(s, out DateTime dtm))
                        {
                            fdo.Modified = dtm;
                        }
                        break;
                    }

                    if (toComment)
                    {
                        fdo.Comment += s + "\r\n";
                    }

                    if (toNotes)
                    {
                        fdo.Notes += s + "\r\n";
                    }
                }
            }

            _files.Add(fdo);
        }