Example #1
0
        public static void Init()
        {
            //把静态构造函数中的初始化操作放到这里
            try {
#if !机房版
                //if (IRQ_GameNet.UserService.CurrentUser.Id == 0) {
                //    DebugLog.RaiseErrorReport(ErrorLevel.Dead, "尚未登录,ResourceService须在登录后才能正常初始化。");
                //    return;
                //}
#endif
                if (!System.IO.Directory.Exists("Data"))
                {
                    System.IO.Directory.CreateDirectory("Data");
                }
                if (!System.IO.Directory.Exists("Users"))
                {
                    System.IO.Directory.CreateDirectory("Users");
                }
#if PACK
                //--用户数据

                InitUserData();

                //在线数据
                m_OnlineScene  = IRQ_Packer.OpenPacker("Data\\DataD2_dat");
                OnLineSceneLib = m_OnlineScene.GetFileTable("OnlineScene");
                if (OnLineSceneLib == null)
                {
                    OnLineSceneLib = m_OnlineScene.AddFileTable("OnlineScene");
                }

                //---官方数据
                m_sysData = IRQ_Packer.OpenPacker("Data\\DataD_dat");

                OfflineSceneLib = m_sysData.GetFileTable("OfflineScene");
                if (OfflineSceneLib == null)
                {
                    OfflineSceneLib = m_sysData.AddFileTable("OfflineScene");
                }
                //自带机器人、程序

                m_sysData_RobotVPL = IRQ_Packer.OpenPacker("Data\\DataD1_dat");
                SystemRobotLib     = m_sysData_RobotVPL.GetFileTable("SystemRobot");
                if (SystemRobotLib == null)
                {
                    SystemRobotLib = m_sysData_RobotVPL.AddFileTable("SystemRobot");
                }

                SystemCtrlLib = m_sysData_RobotVPL.GetFileTable("SystemVPL");
                if (SystemCtrlLib == null)
                {
                    SystemCtrlLib = m_sysData_RobotVPL.AddFileTable("SystemVPL");
                }
                SystemQuickSimPackLib = m_sysData_RobotVPL.GetFileTable("SystemQuick");
                if (SystemQuickSimPackLib == null)
                {
                    SystemQuickSimPackLib = m_sysData_RobotVPL.AddFileTable("SystemQuick");
                }
                //--缓存数据
                m_tempData = IRQ_Packer.OpenPacker("Data\\DataE_dat");

                TempUserCtrlLib = m_tempData.GetFileTable("TempVPL");
                if (TempUserCtrlLib == null)
                {
                    TempUserCtrlLib = m_tempData.AddFileTable("TempVPL");
                }

                TempUserRobotLib = m_tempData.GetFileTable("TempRobot");
                if (TempUserRobotLib == null)
                {
                    TempUserRobotLib = m_tempData.AddFileTable("TempRobot");
                }
                TempLeadInResLib = m_tempData.GetFileTable("TempLeadInRes");
                if (TempLeadInResLib == null)
                {
                    TempLeadInResLib = m_tempData.AddFileTable("TempLeadInRes");
                }
#else
                m_CurrentUserDataDir = Path.Combine("Users", IRQ_GameNet.UserService.CurrentUser.Id.ToString());
                IRQ_Utility.CheckDirectory(m_CurrentUserDataDir);

                UserRobotLib      = new FilesSystemPackerStrategy();
                UserRobotLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\Robot";
                if (!Directory.Exists(UserRobotLib.Name))
                {
                    Directory.CreateDirectory(UserRobotLib.Name);
                }

                UserSceneLib      = new FilesSystemPackerStrategy();
                UserSceneLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\Scene";
                if (!Directory.Exists(UserSceneLib.Name))
                {
                    Directory.CreateDirectory(UserSceneLib.Name);
                }

                UserCtrlLib      = new FilesSystemPackerStrategy();
                UserCtrlLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\VPL";
                if (!Directory.Exists(UserCtrlLib.Name))
                {
                    Directory.CreateDirectory(UserCtrlLib.Name);
                }

                QuickLanchLib      = new FilesSystemPackerStrategy();
                QuickLanchLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\Quick";
                if (!Directory.Exists(QuickLanchLib.Name))
                {
                    Directory.CreateDirectory(QuickLanchLib.Name);
                }
                FullSimpackLib      = new FilesSystemPackerStrategy();
                FullSimpackLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\FullQuick";
                if (!Directory.Exists(FullSimpackLib.Name))
                {
                    Directory.CreateDirectory(FullSimpackLib.Name);
                }
                TemplateSceneLib      = new FilesSystemPackerStrategy();
                TemplateSceneLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\TemplateScene";
                if (!Directory.Exists(TemplateSceneLib.Name))
                {
                    Directory.CreateDirectory(TemplateSceneLib.Name);
                }
                TemplateRobotLib      = new FilesSystemPackerStrategy();
                TemplateRobotLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\TemplateRobot";
                if (!Directory.Exists(TemplateRobotLib.Name))
                {
                    Directory.CreateDirectory(TemplateRobotLib.Name);
                }

                TemplateVPLLib      = new FilesSystemPackerStrategy();
                TemplateVPLLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\TemplateVPL";
                if (!Directory.Exists(TemplateVPLLib.Name))
                {
                    Directory.CreateDirectory(TemplateVPLLib.Name);
                }

                UserSettingLib      = new FilesSystemPackerStrategy();
                UserSettingLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\Setting";
                if (!Directory.Exists(UserSettingLib.Name))
                {
                    Directory.CreateDirectory(UserSettingLib.Name);
                }

                OnLineSceneLib      = new FilesSystemPackerStrategy();
                OnLineSceneLib.Name = "Data\\DataD2\\OnlineScene";
                if (!Directory.Exists(OnLineSceneLib.Name))
                {
                    Directory.CreateDirectory(OnLineSceneLib.Name);
                }

                OfflineSceneLib      = new FilesSystemPackerStrategy();
                OfflineSceneLib.Name = "Data\\DataD\\OfflineScene";
                if (!Directory.Exists(OfflineSceneLib.Name))
                {
                    Directory.CreateDirectory(OfflineSceneLib.Name);
                }

                //特殊处理的
                SystemRobotLib      = new FilesSystemPackerStrategy();
                SystemRobotLib.Name = "Data\\DataD1\\SystemRobot";
                if (!Directory.Exists(SystemRobotLib.Name))
                {
                    Directory.CreateDirectory(SystemRobotLib.Name);
                }
                SystemCtrlLib      = new FilesSystemPackerStrategy();
                SystemCtrlLib.Name = "Data\\DataD1\\SystemVPL";
                if (!Directory.Exists(SystemCtrlLib.Name))
                {
                    Directory.CreateDirectory(SystemCtrlLib.Name);
                }

                SystemQuickSimPackLib      = new FilesSystemPackerStrategy();
                SystemQuickSimPackLib.Name = "Data\\DataD1\\SystemQuick";
                if (!Directory.Exists(SystemQuickSimPackLib.Name))
                {
                    Directory.CreateDirectory(SystemQuickSimPackLib.Name);
                }

                TempUserRobotLib      = new FilesSystemPackerStrategy();
                TempUserRobotLib.Name = "Data\\DataE\\TempRobot";
                if (!Directory.Exists(TempUserRobotLib.Name))
                {
                    Directory.CreateDirectory(TempUserRobotLib.Name);
                }
                TempUserCtrlLib      = new FilesSystemPackerStrategy();
                TempUserCtrlLib.Name = "Data\\DataE\\TempVPL";
                if (!Directory.Exists(TempUserCtrlLib.Name))
                {
                    Directory.CreateDirectory(TempUserCtrlLib.Name);
                }
                TempLeadInResLib      = new FilesSystemPackerStrategy();
                TempLeadInResLib.Name = "Data\\DataE\\TempLeadInRes";
                if (!Directory.Exists(TempLeadInResLib.Name))
                {
                    Directory.CreateDirectory(TempLeadInResLib.Name);
                }
#endif
                RegistorAllLibs();
            }
            catch (Exception ee) {
                Console.WriteLine(ee.ToString());
            }
        }
Example #2
0
        //public static string GetCurrentUserDataFile() {
        //    return m_newuserlibfile;
        //}
        private static void InitUserData()
        {
            //m_newuserlibfile = string.Empty;

            //if (IRQ_GameNet.UserService.CurrentUser.Id == 0) {
            m_CurrentUserDataDir = Path.Combine("Users", "0");
            IRobotQ.PackerDisk.DiskReadZip_FilePacker.CheckDirectory(m_CurrentUserDataDir);

            try {
                m_userData = IRQ_Packer.OpenPacker(m_CurrentUserDataDir);
            }
            catch (Exception ee) {
                //DebugLog.Log("打开游客数据失败", ee, true);
                Console.WriteLine(ee.ToString());
            }
            //}


            UserRobotLib = m_userData.GetFileTable("Robot");
            if (UserRobotLib == null)
            {
                UserRobotLib = m_userData.AddFileTable("Robot");
            }

            UserSceneLib = m_userData.GetFileTable("Scene");
            if (UserSceneLib == null)
            {
                UserSceneLib = m_userData.AddFileTable("Scene");
            }

            UserCtrlLib = m_userData.GetFileTable("VPL");
            if (UserCtrlLib == null)
            {
                UserCtrlLib = m_userData.AddFileTable("VPL");
            }

            QuickLanchLib = m_userData.GetFileTable("Quick");
            if (QuickLanchLib == null)
            {
                QuickLanchLib = m_userData.AddFileTable("Quick");
            }

            FullSimpackLib = m_userData.GetFileTable("FullQuick");
            if (FullSimpackLib == null)
            {
                FullSimpackLib = m_userData.AddFileTable("FullQuick");
            }

            TemplateSceneLib = m_userData.GetFileTable("TemplateScene");
            if (TemplateSceneLib == null)
            {
                TemplateSceneLib = m_userData.AddFileTable("TemplateScene");
            }

            TemplateRobotLib = m_userData.GetFileTable("TemplateRobot");
            if (TemplateRobotLib == null)
            {
                TemplateRobotLib = m_userData.AddFileTable("TemplateRobot");
            }

            TemplateVPLLib = m_userData.GetFileTable("TemplateVPL");
            if (TemplateVPLLib == null)
            {
                TemplateVPLLib = m_userData.AddFileTable("TemplateVPL");
            }
            UserSettingLib = m_userData.GetFileTable("Setting");
            if (UserSettingLib == null)
            {
                UserSettingLib = m_userData.AddFileTable("Setting");
            }
        }
        //public static string GetCurrentUserDataFile() {
        //    return m_newuserlibfile;
        //}
        private static void InitUserData() {


            //m_newuserlibfile = string.Empty;

            //if (IRQ_GameNet.UserService.CurrentUser.Id == 0) {
            m_CurrentUserDataDir = Path.Combine("Users", "0");
            IRobotQ.PackerDisk.DiskReadZip_FilePacker.CheckDirectory(m_CurrentUserDataDir);

            try {
                m_userData = IRQ_Packer.OpenPacker(m_CurrentUserDataDir);
            }
            catch (Exception ee) {
                //DebugLog.Log("打开游客数据失败", ee, true);
                Console.WriteLine(ee.ToString());
            }
            //}


            UserRobotLib = m_userData.GetFileTable("Robot");
            if (UserRobotLib == null) {
                UserRobotLib = m_userData.AddFileTable("Robot");
            }

            UserSceneLib = m_userData.GetFileTable("Scene");
            if (UserSceneLib == null) {
                UserSceneLib = m_userData.AddFileTable("Scene");
            }

            UserCtrlLib = m_userData.GetFileTable("VPL");
            if (UserCtrlLib == null) {
                UserCtrlLib = m_userData.AddFileTable("VPL");
            }

            QuickLanchLib = m_userData.GetFileTable("Quick");
            if (QuickLanchLib == null) {
                QuickLanchLib = m_userData.AddFileTable("Quick");
            }

            FullSimpackLib = m_userData.GetFileTable("FullQuick");
            if (FullSimpackLib == null) {
                FullSimpackLib = m_userData.AddFileTable("FullQuick");
            }

            TemplateSceneLib = m_userData.GetFileTable("TemplateScene");
            if (TemplateSceneLib == null) {
                TemplateSceneLib = m_userData.AddFileTable("TemplateScene");
            }

            TemplateRobotLib = m_userData.GetFileTable("TemplateRobot");
            if (TemplateRobotLib == null) {
                TemplateRobotLib = m_userData.AddFileTable("TemplateRobot");
            }

            TemplateVPLLib = m_userData.GetFileTable("TemplateVPL");
            if (TemplateVPLLib == null) {
                TemplateVPLLib = m_userData.AddFileTable("TemplateVPL");
            }
            UserSettingLib = m_userData.GetFileTable("Setting");
            if (UserSettingLib == null) {
                UserSettingLib = m_userData.AddFileTable("Setting");
            }
        }
Example #4
0
        public static void Main(string[] args)
        {
            //测试序列化

            List <IRQ_VPLDocInfo_Json> vpldocjsons = new List <IRQ_VPLDocInfo_Json>();

            for (int i = 0; i < 1; i++)
            {
                IRQ_VPLDocInfo_Json docjs = new IRQ_VPLDocInfo_Json();
                docjs.Author                 = "me_" + i.ToString();
                docjs.CodeType               = VPL_CodeType.CSharp;
                docjs.CreateDate             = DateTime.Now;
                docjs.Description            = "";
                docjs.IsCodeMode             = false;
                docjs.IsNoRobotMode          = true;
                docjs.LastUpdate             = DateTime.Now;
                docjs.NoRobotMode_LastPlatId = "";
                docjs.OnCloudSvr             = false;
                docjs.PackageUniqueId        = "";
                docjs.PackageVersion         = "2.0";
                docjs.Source                 = IRQ_FileDocSource.User;
                docjs.Ver = "2.0";
                vpldocjsons.Add(docjs);
            }
            string docJsonStr = SimpleJsonEx.SimpleJson.SerializeObject(vpldocjsons);

            using (FileStream fs = new FileStream("test_array.json", FileMode.OpenOrCreate, FileAccess.Write)) {
                using (StreamWriter sw = new StreamWriter(fs, Encoding.UTF8)) {
                    sw.Write(docJsonStr);
                }
            }
            //反序列化
            string docJosnStr2 = "";

            using (StreamReader sr = new StreamReader("test_array.json", Encoding.UTF8)) {
                docJosnStr2 = sr.ReadToEnd();
            }
            List <IRQ_VPLDocInfo_Json> redocJsons = SimpleJsonEx.SimpleJson.DeserializeObject <List <IRQ_VPLDocInfo_Json> >(docJosnStr2);

            char[]      invalid1     = Path.GetInvalidFileNameChars();
            char[]      invalid2     = Path.GetInvalidPathChars();
            List <char> invalidChars = new List <char>();

            invalidChars.AddRange(invalid1);
            for (int i = 0; i < invalid2.Length; i++)
            {
                if (invalidChars.Contains(invalid2[i]) == false)
                {
                    invalidChars.Add(invalid2[i]);
                }
            }
            StringBuilder sb = new StringBuilder();

            for (int i = 0; i < invalidChars.Count; i++)
            {
                sb.Append(string.Format("{0}", (int)invalidChars[i]));
                if (i != invalidChars.Count - 1)
                {
                    sb.Append(",");
                }
            }
            string chars = sb.ToString();

            Console.WriteLine(chars);
            // "'\"','<','>','|','\0','','','','','','','\a','\b','\t','\n','\v','\f','\r','','','','','','','','','','','','','','','','','','',':','*','?','\\','/'"
            int timestart = Environment.TickCount;

            ResourceService.Init();
            // Stopwatch swRead = new Stopwatch();
            // swRead.Start();
            // IFilePackerStrategy urobot = ResourceService.GetLib(IRQ_FileType.Robot);
            //byte[] strInfo= urobot.OpenFile("kaka/1.png");
            //urobot.DelDir("kaka");
            //swRead.Stop();
            //Console.WriteLine("end:"+swRead.ElapsedMilliseconds.ToString()+" ms");

            //return;
            //
            //增加文件
            IFileSysPackerStrategy fps   = ResourceService.GetLib(IRQ_FileType.TempLeadInRes);
            FileStream             fsadd = new FileStream("mypack.data.zip", FileMode.Open, FileAccess.Read);

            byte[] buf_add = new byte[fsadd.Length];
            fsadd.Read(buf_add, 0, buf_add.Length);
            fsadd.Close();
            fps.Packer.BeginUpdate(fps);
            if (fps.FileExists("/test/mypack.data.zip"))
            {
                byte[] testReadBuf = fps.OpenFile("/test/mypack.data.zip");
                fps.DelFile("/test/mypack.data.zip");
            }
            fps.AddFile("/test/mypack.data.zip", buf_add, DateTime.Now);       //addfile
            fps.AddFile("/test/dir2/mypack2.data.zip", buf_add, DateTime.Now); //addfile
            fps.UpdateFile("/test/dir2/mypack2.data.zip", new byte[] { 1, 2, 3, 4 }, DateTime.Now);
            fps.AddFile("/test2/mypack.data.zip", buf_add, DateTime.Now);      //addfile
            fps.RenameFile("/test2/mypack.data.zip", "/test2/mypack2.data.zip");
            fps.RenameDir("test", "test3");
            List <string> getDirs = new List <string>();

            fps.GetDirs(out getDirs);
            fps.Clean();

            fps.AddFile("/test3/mypack.data.zip", buf_add, FileEntryInfo.DateTimeFromStr_STC("2016-01-01 12:12:12")); //addfile
            fps.AddFile("/test4/mypack.data.zip", buf_add, DateTime.Now);                                             //addfile
            getDirs = new List <string>();
            fps.GetDirs(out getDirs);
            DateTime      dtupdate  = fps.GetUpdateDate("test3/mypack.data.zip");
            List <string> filenames = new List <string>();
            int           totalSize = 0;

            fps.GetFiles("test3", out filenames, out totalSize);
            fps.DelDir("test3");
            fps.RenameDir("test4", "test");

            fps.Packer.EndUpdate(fps, true);
            Console.WriteLine("耗时:" + (Environment.TickCount - timestart).ToString() + " ms");
            Console.Read();
            return;

            string SCRATCH_FILES_PATH = "ziptest";
            //
            {
                //test
                //CompressionType.LZMA    10次 34175ms 242k
                //CompressionType.PPMd    10次 68678ms 319k
                //CompressionType.Deflate 10次 3006ms 428k
                //CompressionType.BZip2 10次 10103ms 335k
                //CompressionType.GZip not support
                //CompressionType.Rar  not support
                //CompressionType.BCJ2 not support
                //CompressionType.BCJ not support
                Stopwatch sw = new Stopwatch();
                sw.Start();
                //for (int i = 0; i < 10; i++) {
                using (var archive = ZipArchive.Create()) {
                    DirectoryInfo di = new DirectoryInfo(SCRATCH_FILES_PATH);
                    foreach (var fi in di.GetFiles())
                    {
                        archive.AddEntry(fi.Name, fi.OpenRead(), true);
                    }
                    FileStream fs_scratchPath = new FileStream("compresstimetest.zip", FileMode.OpenOrCreate, FileAccess.Write);
                    archive.SaveTo(fs_scratchPath, CompressionType.Deflate);
                    fs_scratchPath.Close();
                }
                //break;
                //}
                sw.Stop();
                Console.WriteLine("10time (ms):" + sw.ElapsedMilliseconds.ToString());
            }

            string scratchPath = "ziptest.zip";

            using (var archive = ZipArchive.Create()) {
                DirectoryInfo di = new DirectoryInfo(SCRATCH_FILES_PATH);
                foreach (var fi in di.GetFiles())
                {
                    archive.AddEntry(fi.Name, fi.OpenRead(), true);
                }
                FileStream fs_scratchPath = new FileStream(scratchPath, FileMode.OpenOrCreate, FileAccess.Write);
                archive.SaveTo(fs_scratchPath, CompressionType.LZMA);
                fs_scratchPath.Close();
                //archive.AddAllFromDirectory(SCRATCH_FILES_PATH);
                //archive.SaveTo(scratchPath, CompressionType.Deflate);
                using (FileStream fs = new FileStream("ziphead.zip", FileMode.OpenOrCreate, FileAccess.ReadWrite)) {
                    MyHead mh       = new MyHead();
                    byte[] headData = mh.Create();
                    fs.Write(headData, 0, headData.Length);
                    //
                    SharpCompress.IO.OffsetStream ofs = new IO.OffsetStream(fs, fs.Position);
                    archive.SaveTo(ofs, CompressionType.Deflate);
                }
            }
            //write my zipfile with head data
            using (FileStream fs = new FileStream("mypack.data.zip", FileMode.Create, FileAccess.ReadWrite, FileShare.Read)) {
                MyHead mh       = new MyHead();
                byte[] headData = mh.Create();
                fs.Write(headData, 0, headData.Length);
                using (FileStream fs2 = new FileStream(scratchPath, FileMode.Open, FileAccess.Read)) {
                    byte[] buf = new byte[1024];
                    int    rc  = 0;
                    while ((rc = fs2.Read(buf, 0, buf.Length)) > 0)
                    {
                        fs.Write(buf, 0, rc);
                    }
                }
            }
            //
            //read my zip file with head
            //
            using (FileStream fs = new FileStream("mypack.data.zip", FileMode.Open, FileAccess.Read, FileShare.Read)) {
                byte[] buf    = new byte[1024];
                int    offset = fs.Read(buf, 0, buf.Length);
                System.Diagnostics.Debug.Assert(offset == 1024);
                //fs.Position = 0L;
                SharpCompress.IO.OffsetStream substream = new SharpCompress.IO.OffsetStream(fs, offset);
                ZipArchive zip = ZipArchive.Open(substream, Options.KeepStreamsOpen);//cann't read
                //ZipArchive zip = ZipArchive.Open(fs, Options.None); //will throw exption
                //ZipArchive zip = ZipArchive.Open(fs, Options.KeepStreamsOpen);//cann't read

                foreach (ZipArchiveEntry zf in zip.Entries)
                {
                    Console.WriteLine(zf.Key);
                    //bug:the will not none in zipfile
                }

                int jjj = 0;
                jjj++;
            }
        }
        public static void Init() {
            //把静态构造函数中的初始化操作放到这里
            try {
#if !机房版
                //if (IRQ_GameNet.UserService.CurrentUser.Id == 0) {
                //    DebugLog.RaiseErrorReport(ErrorLevel.Dead, "尚未登录,ResourceService须在登录后才能正常初始化。");
                //    return;
                //}
#endif
                if (!System.IO.Directory.Exists("Data")) {
                    System.IO.Directory.CreateDirectory("Data");
                }
                if (!System.IO.Directory.Exists("Users")) {
                    System.IO.Directory.CreateDirectory("Users");
                }
#if PACK
                //--用户数据             

                InitUserData();

                //在线数据
                m_OnlineScene = IRQ_Packer.OpenPacker("Data\\DataD2_dat");
                OnLineSceneLib = m_OnlineScene.GetFileTable("OnlineScene");
                if (OnLineSceneLib == null) {
                    OnLineSceneLib = m_OnlineScene.AddFileTable("OnlineScene");
                }

                //---官方数据
                m_sysData = IRQ_Packer.OpenPacker("Data\\DataD_dat");

                OfflineSceneLib = m_sysData.GetFileTable("OfflineScene");
                if (OfflineSceneLib == null) {
                    OfflineSceneLib = m_sysData.AddFileTable("OfflineScene");
                }
                //自带机器人、程序

                m_sysData_RobotVPL = IRQ_Packer.OpenPacker("Data\\DataD1_dat");
                SystemRobotLib = m_sysData_RobotVPL.GetFileTable("SystemRobot");
                if (SystemRobotLib == null) {
                    SystemRobotLib = m_sysData_RobotVPL.AddFileTable("SystemRobot");
                }

                SystemCtrlLib = m_sysData_RobotVPL.GetFileTable("SystemVPL");
                if (SystemCtrlLib == null) {
                    SystemCtrlLib = m_sysData_RobotVPL.AddFileTable("SystemVPL");
                }
                SystemQuickSimPackLib = m_sysData_RobotVPL.GetFileTable("SystemQuick");
                if (SystemQuickSimPackLib == null) {
                    SystemQuickSimPackLib = m_sysData_RobotVPL.AddFileTable("SystemQuick");
                }
                //--缓存数据
                m_tempData = IRQ_Packer.OpenPacker("Data\\DataE_dat");

                TempUserCtrlLib = m_tempData.GetFileTable("TempVPL");
                if (TempUserCtrlLib == null) {
                    TempUserCtrlLib = m_tempData.AddFileTable("TempVPL");
                }

                TempUserRobotLib = m_tempData.GetFileTable("TempRobot");
                if (TempUserRobotLib == null) {
                    TempUserRobotLib = m_tempData.AddFileTable("TempRobot");
                }
                TempLeadInResLib = m_tempData.GetFileTable("TempLeadInRes");
                if (TempLeadInResLib == null) {
                    TempLeadInResLib = m_tempData.AddFileTable("TempLeadInRes");
                }

#else

                m_CurrentUserDataDir = Path.Combine("Users", IRQ_GameNet.UserService.CurrentUser.Id.ToString());
                IRQ_Utility.CheckDirectory(m_CurrentUserDataDir);

                UserRobotLib = new FilesSystemPackerStrategy();
                UserRobotLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\Robot";
                if (!Directory.Exists(UserRobotLib.Name)) {
                    Directory.CreateDirectory(UserRobotLib.Name);
                }

                UserSceneLib = new FilesSystemPackerStrategy();
                UserSceneLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\Scene";
                if (!Directory.Exists(UserSceneLib.Name)) {
                    Directory.CreateDirectory(UserSceneLib.Name);
                }

                UserCtrlLib = new FilesSystemPackerStrategy();
                UserCtrlLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\VPL";
                if (!Directory.Exists(UserCtrlLib.Name)) {
                    Directory.CreateDirectory(UserCtrlLib.Name);
                }

                QuickLanchLib = new FilesSystemPackerStrategy();
                QuickLanchLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\Quick";
                if (!Directory.Exists(QuickLanchLib.Name)) {
                    Directory.CreateDirectory(QuickLanchLib.Name);
                }
                FullSimpackLib = new FilesSystemPackerStrategy();
                FullSimpackLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\FullQuick";
                if (!Directory.Exists(FullSimpackLib.Name)) {
                    Directory.CreateDirectory(FullSimpackLib.Name);
                }
                TemplateSceneLib = new FilesSystemPackerStrategy();
                TemplateSceneLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\TemplateScene";
                if (!Directory.Exists(TemplateSceneLib.Name)) {
                    Directory.CreateDirectory(TemplateSceneLib.Name);
                }
                TemplateRobotLib = new FilesSystemPackerStrategy();
                TemplateRobotLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\TemplateRobot";
                if (!Directory.Exists(TemplateRobotLib.Name)) {
                    Directory.CreateDirectory(TemplateRobotLib.Name);
                }

                TemplateVPLLib = new FilesSystemPackerStrategy();
                TemplateVPLLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\TemplateVPL";
                if (!Directory.Exists(TemplateVPLLib.Name)) {
                    Directory.CreateDirectory(TemplateVPLLib.Name);
                }

                UserSettingLib = new FilesSystemPackerStrategy();
                UserSettingLib.Name = "Users\\" + IRQ_GameNet.UserService.CurrentUser.Id.ToString() + "\\Setting";
                if (!Directory.Exists(UserSettingLib.Name)) {
                    Directory.CreateDirectory(UserSettingLib.Name);
                }

                OnLineSceneLib = new FilesSystemPackerStrategy();
                OnLineSceneLib.Name = "Data\\DataD2\\OnlineScene";
                if (!Directory.Exists(OnLineSceneLib.Name)) {
                    Directory.CreateDirectory(OnLineSceneLib.Name);
                }

                OfflineSceneLib = new FilesSystemPackerStrategy();
                OfflineSceneLib.Name = "Data\\DataD\\OfflineScene";
                if (!Directory.Exists(OfflineSceneLib.Name)) {
                    Directory.CreateDirectory(OfflineSceneLib.Name);
                }

                //特殊处理的
                SystemRobotLib = new FilesSystemPackerStrategy();
                SystemRobotLib.Name = "Data\\DataD1\\SystemRobot";
                if (!Directory.Exists(SystemRobotLib.Name)) {
                    Directory.CreateDirectory(SystemRobotLib.Name);
                }
                SystemCtrlLib = new FilesSystemPackerStrategy();
                SystemCtrlLib.Name = "Data\\DataD1\\SystemVPL";
                if (!Directory.Exists(SystemCtrlLib.Name)) {
                    Directory.CreateDirectory(SystemCtrlLib.Name);
                }

                SystemQuickSimPackLib = new FilesSystemPackerStrategy();
                SystemQuickSimPackLib.Name = "Data\\DataD1\\SystemQuick";
                if (!Directory.Exists(SystemQuickSimPackLib.Name)) {
                    Directory.CreateDirectory(SystemQuickSimPackLib.Name);
                }

                TempUserRobotLib = new FilesSystemPackerStrategy();
                TempUserRobotLib.Name = "Data\\DataE\\TempRobot";
                if (!Directory.Exists(TempUserRobotLib.Name)) {
                    Directory.CreateDirectory(TempUserRobotLib.Name);
                }
                TempUserCtrlLib = new FilesSystemPackerStrategy();
                TempUserCtrlLib.Name = "Data\\DataE\\TempVPL";
                if (!Directory.Exists(TempUserCtrlLib.Name)) {
                    Directory.CreateDirectory(TempUserCtrlLib.Name);
                }
                TempLeadInResLib = new FilesSystemPackerStrategy();
                TempLeadInResLib.Name = "Data\\DataE\\TempLeadInRes";
                if (!Directory.Exists(TempLeadInResLib.Name)) {
                    Directory.CreateDirectory(TempLeadInResLib.Name);
                }
#endif
                RegistorAllLibs();
            }
            catch (Exception ee) {
                Console.WriteLine(ee.ToString());
            }
        }
 /// <summary>
 /// 保存压缩包
 /// </summary>
 /// <param name="file"></param>
 /// <param name="success">false:放弃修改,直接关闭。true:先保存到缓存,完成后覆盖到当前</param>
 public void EndUpdate(IFileSysPackerStrategy file, bool success)
 {
     string tableName = file.Name;
     EndUpdate(tableName, success);
 }
 /// <summary>
 /// 打开压缩包
 /// </summary>
 public void BeginUpdate(IFileSysPackerStrategy file)
 {
     string tableName = file.Name;
     BeginUpdate(tableName);
 }
        public void EndUpdate(IFileSysPackerStrategy file, bool success)
        {
            string tableName = file.Name;

            EndUpdate(tableName, success);
        }
        public void BeginUpdate(IFileSysPackerStrategy file)
        {
            string tableName = file.Name;

            BeginUpdate(tableName);
        }