private static string GetBytes(RobocopyProcess process, RobocopySummaryColumn column)
        {
            string rawValue  = process.GetSummary(RobocopySummaryRow.Bytes, column);
            string separator = (rawValue.Contains(" ") ? string.Empty : " ");

            return(string.Format("{0}{1}bytes", rawValue, separator));
        }
Exemple #2
0
        /// <summary>
        /// Tries to parse a field of the Robocopy summary output.
        /// Returns "NaN" on error.
        /// </summary>
        public string GetSummary(RobocopySummaryRow row, RobocopySummaryColumn column)
        {
            const string defaultValue = "NaN";

            int baseRowIndex = OutputSummaryLineIndex;

            if (baseRowIndex < 0)
            {
                return(defaultValue);
            }

            int rowIndex = baseRowIndex + (int)row;
            int colIndex = (int)column;

            try
            {
                string rawValue = Output[rowIndex].Substring(colIndex * 10, 10).Trim();

                // try to parse it as integer; on success enforce culture-specific group separators
                int integer;
                if (int.TryParse(rawValue, out integer) && integer.ToString() == rawValue)
                {
                    return(integer.ToString("n0"));
                }

                return(rawValue);
            }
            catch { return(defaultValue); }
        }