Ejemplo n.º 1
0
        public string MapPath(string src)
        {
            if (src == null)
            {
                return(null);
            }

            src = src.Substring(1);
            string[] origparts = src.Split('\\');
            src = src.ToLower();
            string[] parts = src.Split('\\');

            SharePath lastmapped = null;
            SharePath current    = this;
            int       pathidx    = -1;

            int i = 0;

            for (i = 0; i < parts.Length; i++)
            {
                if (current.SubPaths.ContainsKey(parts[i]))
                {
                    current = current.SubPaths[parts[i]];
                    if (current.Target != null)
                    {
                        lastmapped = current;
                        pathidx    = i;
                    }
                }
                else
                {
                    break;
                }
            }

            string newpath = null;

            if (i == parts.Length)
            {
                newpath = lastmapped.Target;
            }
            else if (i == 0)
            {
                newpath = null;
            }
            else
            {
                newpath = current.Target + "\\" + String.Join("\\", origparts, pathidx + 1, parts.Length - pathidx - 1);
            }
            return(newpath);
        }
Ejemplo n.º 2
0
        public SharePath AddPath(string src, string dest)
        {
            SharePath curr = this;

            string[] parts = src.ToLower().Split('\\');

            foreach (string s in parts)
            {
                if (!curr.SubPaths.ContainsKey(s))
                {
                    curr.SubPaths[s] = new SharePath();
                }

                curr = curr.SubPaths[s];
            }
            curr.Target = dest;
            return(curr);
        }
Ejemplo n.º 3
0
        private static void InitMap()
        {
            root = new SharePath();
            try
            {
                Assembly     _assembly;
                StreamReader tsr;
                _assembly = Assembly.GetExecutingAssembly();
                tsr       = new StreamReader(_assembly.GetManifestResourceStream(System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + ".ShareMappings.txt"));

                while (!tsr.EndOfStream)
                {
                    string line = tsr.ReadLine();
                    if (line.StartsWith("#"))
                    {
                        continue;
                    }

                    if (line.Equals(""))
                    {
                        continue;
                    }

                    string src = line;

                    line = tsr.ReadLine();
                    string dest = line;

                    src = src.Substring(1);

                    if (root == null)
                    {
                        root = new SharePath();
                    }

                    SharePath tar = root.AddPath(src, dest);
                }
            }
            catch
            {
                Console.WriteLine("oops");
            }
        }