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)); }
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); } }
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); }