예제 #1
0
파일: Gcf.cs 프로젝트: bonomali/Ibasa
            public GcfFileInfo(Gcf gcf, string path)
            {
                Gcf  = gcf;
                Path = path;

                path = Gcf.Path.GetFullPath(path);

                string[] names = path.Split(Gcf.Path.DirectorySeparatorChars);

                Packaging.DirectoryInfo dir = Gcf.Root;

                for (int i = 0; i < names.Length - 1; ++i)
                {
                    var children = dir.GetDirectories(names[i]);

                    if (children.Length != 1)
                    {
                        dir = null;
                        break;
                    }

                    dir = children[0];
                }

                if (dir != null)
                {
                    var children = dir.GetFiles(names[names.Length - 1]);

                    if (children.Length != 1)
                    {
                        Index       = 0xFFFFFFFF;
                        ParentIndex = 0xFFFFFFFF;
                        ItemSize    = 0;
                    }
                    else
                    {
                        GcfFileInfo gcffile = children[0] as GcfFileInfo;

                        Index       = gcffile.Index;
                        ParentIndex = gcffile.ParentIndex;
                        ItemSize    = gcffile.ItemSize;
                    }
                }
                else
                {
                    Index       = 0xFFFFFFFF;
                    ParentIndex = 0xFFFFFFFF;
                    ItemSize    = 0;
                }
            }
예제 #2
0
파일: Gcf.cs 프로젝트: bonomali/Ibasa
            public GcfDirectoryInfo(Gcf gcf, string path)
            {
                Gcf  = gcf;
                Path = path;

                path = Gcf.Path.GetFullPath(path);

                string[] names = path.Split(Gcf.Path.DirectorySeparatorChars);

                Packaging.DirectoryInfo dir = Gcf.Root;

                for (int i = 0; i < names.Length; ++i)
                {
                    var children = dir.GetDirectories(names[i]);

                    if (children.Length != 1)
                    {
                        dir = null;
                        break;
                    }

                    dir = children[0];
                }

                GcfDirectoryInfo gcfdir = dir as GcfDirectoryInfo;

                if (gcfdir != null)
                {
                    Index       = gcfdir.Index;
                    ParentIndex = gcfdir.ParentIndex;
                }
                else
                {
                    Index       = 0xFFFFFFFF;
                    ParentIndex = 0xFFFFFFFF;
                }
            }