Пример #1
0
        /// <summary>
        /// create link from line
        /// </summary>
        /// <param name="line"></param>
        /// <returns>the created link or null if the format isn't valid</returns>
        public static Link CreateFromLine(string line)
        {
            const int argCount = 7;

            string[] parts = line.Split('\"');

            if (parts.Length != 1 + 2 * argCount)
            {
                return(null);
            }

            if (!parts[2].Trim().Equals(":") || parts.Where((x, i) => i > 2 && i < 2 * argCount && i % 2 == 0 && x.Trim() != ",").Count() > 0)
            {
                return(null);
            }

            /*!parts[4].Trim().Equals(",") || !parts[6].Trim().Equals(",")
            || !parts[8].Trim().Equals(",") || !parts[10].Trim().Equals(","))*/

            int argIndex = 1;

            string title = parts[argIndex];
            string path1 = parts[argIndex += 2];
            string path2 = parts[argIndex += 2];

            SyncDirection direction;
            bool          remove;

            try
            {
                direction = SyncDirection.Parse(parts[argIndex += 2]);
                remove    = bool.Parse(parts[argIndex += 2]);
            }
            catch (Exception)
            {
                return(null);
            }

            string drive1Label = parts[argIndex += 2];
            string drive2Label = parts[argIndex += 2];

            Link l = new Link(title, path1, path2, direction, remove, drive1Label, drive2Label);

            if (l.Drive1Label != null)
            {
                l.UpdatePath1DriveLetter();
            }
            if (l.Drive2Label != null)
            {
                l.UpdatePath2DriveLetter();
            }
            return(l);
        }
Пример #2
0
        /// <summary>
        /// create link from line
        /// </summary>
        /// <param name="line"></param>
        /// <returns>the created link or null if the format isn't valid</returns>
        public static Link CreateFromLine(string line)
        {
            const int argCount = 7;

            string[] parts = line.Split('\"');

            if (parts.Length != 1 + 2 * argCount)
                return null;

            if (!parts[2].Trim().Equals(":") || parts.Where((x, i) => i > 2 && i < 2 * argCount && i % 2 == 0 && x.Trim() != ",").Count() > 0)
                return null;

            /*!parts[4].Trim().Equals(",") || !parts[6].Trim().Equals(",")
            || !parts[8].Trim().Equals(",") || !parts[10].Trim().Equals(","))*/

            int argIndex = 1;

            string title = parts[argIndex];
            string path1 = parts[argIndex += 2];
            string path2 = parts[argIndex += 2];

            SyncDirection direction;
            bool remove;
            try
            {
                direction = SyncDirection.Parse(parts[argIndex += 2]);
                remove = bool.Parse(parts[argIndex += 2]);
            }
            catch (Exception)
            {
                return null;
            }

            string drive1Label = parts[argIndex += 2];
            string drive2Label = parts[argIndex += 2];

            Link l = new Link(title, path1, path2, direction, remove, drive1Label, drive2Label);
            if (l.Drive1Label != null)
                l.UpdatePath1DriveLetter();
            if (l.Drive2Label != null)
                l.UpdatePath2DriveLetter();
            return l;
        }