/// <summary> /// Makes A new instance of Parameters from arguments. /// </summary> /// <returns>New instance of Parameters.</returns> /// <param name="args">Arguments.</param> /// <param name="settings">Settings.</param> public Parameters MakeParameters(string[] args, NameValueCollection settings) { if (args.Length < 5) { throw makeArgumentException ("Number of argument must be 5."); } string basePath = settings["basePath"]; string pathPrefix = (basePath == null ? string.Empty : basePath + Path.DirectorySeparatorChar); Parameters p = new Parameters(); p.JobId = args[0]; p.ProgramId = args[1]; p.TargetFilePath = EmbedDateTime (pathPrefix + args [2]); p.IntervalSeconds = int.Parse(args[3]); p.Times = int.Parse(args[4]); p.BasePath = basePath; if (p.IntervalSeconds < 1) { throw makeArgumentException ("Interval seconds must be greater than 0."); } if (p.Times < 1) { throw makeArgumentException ("Times must be greater than 0."); } return p; }
/// <summary> /// Makes A new instance of Parameters from arguments. /// </summary> /// <returns>New instance of Parameters.</returns> /// <param name="args">Arguments.</param> /// <param name="settings">Settings.</param> public Parameters MakeParameters(string[] args, NameValueCollection settings) { if (args.Length < 4) { throw makeArgumentException ("Number of argument must be 4."); } string basePath = settings["basePath"]; string pathPrefix = (basePath == null ? string.Empty : basePath + Path.DirectorySeparatorChar); Parameters p = new Parameters(); p.JobId = args[0]; p.ProgramId = args[1]; p.TargetFilePath = EmbedDateTime (pathPrefix + args [2]); p.ZipFilePath = EmbedDateTime (pathPrefix + args [3]); p.BasePath = basePath; if (File.Exists (p.ZipFilePath)) { throw makeArgumentException ("Zip file \"{0}\" already exists.", p.ZipFilePath); } if (GetFileNames(p.TargetFilePath).Length == 0) { throw makeArgumentException ("Target file(s) \"{0}\" is not found.", p.TargetFilePath); } return p; }
public void ChangeEolString(Parameters p) { using(StreamReader sr = new StreamReader(p.SourceFilePath, p.Charset)) { using (StreamWriter sw = new StreamWriter (p.DestinationFilePath, false, p.Charset)) { string line = null; while ((line = sr.ReadLine()) != null) { sw.Write (line); sw.Write (p.Eol); } } } }
/// <summary> /// Makes A new instance of Parameters from arguments. /// </summary> /// <returns>New instance of Parameters.</returns> /// <param name="args">Arguments.</param> /// <param name="settings">Settings.</param> public Parameters MakeParameters(string[] args, NameValueCollection settings) { if (args.Length < 5) { throw makeArgumentException ("Number of argument must be greater than or equal 5."); } string basePath = settings["basePath"]; string pathPrefix = (basePath == null ? string.Empty : basePath + Path.DirectorySeparatorChar); Parameters p = new Parameters(); p.JobId = args[0]; p.ProgramId = args[1]; p.SourceFilePath = EmbedDateTime (pathPrefix + args [2]); p.DestinationFilePath = EmbedDateTime (pathPrefix + args [3]); p.BasePath = basePath; if (args.Length == 6) { p.Charset = Encoding.GetEncoding (args [5]); } else { p.Charset = Encoding.Default; } string eol = args [4].ToUpper (); if (eol.Equals ("CRLF")) { p.Eol = "\r\n"; } else if (eol.Equals ("LF")) { p.Eol = "\n"; } else if (eol.Equals ("CR")) { p.Eol = "\r"; } else { throw makeArgumentException ("Invalid eol option \"{0}\".", args [4]); } if (File.Exists (p.DestinationFilePath)) { throw makeArgumentException ("Dest file \"{0}\" already exists.", p.DestinationFilePath); } if (!File.Exists (p.SourceFilePath)) { throw makeArgumentException ("Source file \"{0}\" is not found.", p.SourceFilePath); } return p; }
public bool CheckIfFileExists(Parameters p) { return File.Exists (p.TargetFilePath); }
/// <summary> /// Makes the name of the zip entry. /// </summary> /// <returns>The zip entry name.</returns> /// <param name="p">Parameters object.</param> /// <param name="fullpath">Fullpath of targrt file.</param> public string MakeZipEntryName(Parameters p, string fullpath) { if (p.BasePath == null) { string root = Path.GetPathRoot (fullpath); return fullpath.Substring (root.Length + 1); } string baseFullPath = Path.GetFullPath (p.BasePath); if (fullpath.StartsWith (baseFullPath)) { return fullpath.Substring (baseFullPath.Length + 1); } else { throw makeArgumentException ("Target file path \"{1}\" must start with base path \"{0}\".", p.BasePath, fullpath); } }
/// <summary> /// Makes the zip file. /// </summary> /// <param name="p">Parameters object.</param> public void MakeZipFile (Parameters p) { using (var zf = ZipFile.Open (p.ZipFilePath, ZipArchiveMode.Create)) { foreach (string file in GetFileNames(p.TargetFilePath)) { string zipEntryName = MakeZipEntryName (p, file); Console.WriteLine ("Add target file \"{0}\" into zip file \"{1}\" as zip entry \"{2}\"", file, p.ZipFilePath, zipEntryName); zf.CreateEntryFromFile (file, MakeZipEntryName(p, file)); } } }