Beispiel #1
0
        public IFile SearchFile(string fileName)
        {
            var folder = FildFolder(fileName, false);

            if (folder == null)
            {
                throw new VFSRuntimeException("{0}文件所属文件夹不存在.", fileName);
            }
            var name = VFSPath.GetFileName(fileName);

            return(folder.FildFileByName(name));
        }
Beispiel #2
0
        public void AppendFile(string fileName, byte[] buffer)
        {
            if (FullName.Equals(VFSPath.GetFolderPath(fileName), StringComparison.CurrentCultureIgnoreCase))
            {
                var bufferInfo = Buffer.ApplyFor(buffer);
                AppendFile(new File(bufferInfo, fileName, this));
                return;
            }
            var folder = FildFolder(fileName, true);

            if (folder != null)
            {
                folder.AppendFile(fileName, buffer);
            }
        }
Beispiel #3
0
        private Folder FildFolder(string fullPath, bool create)
        {
            var pathItem = VFSPath.Parse(fullPath);

            if (pathItem == null)
            {
                throw new VFSRuntimeException("{0} 路径并非合法路径.", fullPath);
            }

            var folder = FindFolder(pathItem, create);

            pathItem = pathItem.GetNext();
            while (pathItem != null && !pathItem.IsFileName)
            {
                folder   = folder.FindFolder(pathItem, create);
                pathItem = pathItem.GetNext();
            }
            return(folder);
        }