public UFileInfo OnGetFile(string name)
 {
     name = name.Replace("\\", "/");
     if (dFiles.ContainsKey(name))
     {
         return(dFiles[name]);
     }
     if (File.Exists(UStaticFuncs.ConfigSaveDir + name))
     {
         var fi = new UFileInfo(name, MD5String.GetMD5HashFromFile(UStaticFuncs.ConfigSaveDir + name));
         dFiles.Add(name, fi);
         return(fi);
     }
     return(null);
 }
    private static string EnumFileMd5(string sdir, string outputDir)
    {
        string sresult = "";

        foreach (var s in Directory.GetFiles(sdir))
        {
            FileInfo fi = new FileInfo(s);
            if (fi.Name.EndsWith(".aspx") || fi.Name.EndsWith(".config") || fi.Name.Contains("/mono/") || fi.Name.Contains("\\mono\\") || fi.Name.EndsWith("version.txt"))
            {
                continue;
            }

            sresult += fi.FullName.Replace("\\", "/").Replace(outputDir.Replace("\\", "/"), "");
            sresult += "|" + MD5String.GetMD5HashFromFile(s) + "|" + fi.Length;
            sresult += "\r\n";
        }
        foreach (var s in Directory.GetDirectories(sdir))
        {
            sresult += EnumFileMd5(s, outputDir);
        }
        return(sresult);
    }