예제 #1
0
        public bool TryGetDirectory(uint key, out Directory directory)
        {
            if (_Directories.TryGetValue(key, out directory))
                return true;

            IndexDirectory index;
            if (Index.Directories.TryGetValue(key, out index)) {
                directory = new Directory(this.Pack, index);
                _Directories.Add(key, directory);
                return true;
            }

            directory = null;
            return false;
        }
예제 #2
0
        public Directory GetDirectory(uint key)
        {
            Directory directory;
            if (_Directories.TryGetValue(key, out directory))
                return directory;

            var index = Index.Directories[key];
            directory = new Directory(this.Pack, index);
            _Directories.Add(key, directory);
            return directory;
        }
예제 #3
0
        public bool TryGetDirectory(string path, out Directory directory)
        {
            uint hash;/*
            if (!_DirectoryPathMap.TryGetValue(path, out hash))
                _DirectoryPathMap.Add(path, hash = Hash.Compute(path));*/
            hash = Hash.Compute(path);

            var result = TryGetDirectory(hash, out directory);
            if (result)
                directory.Path = path;
            return result;
        }