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); }