美文网首页
使用Ogre读取文件

使用Ogre读取文件

作者: lyhkop | 来源:发表于2018-07-05 20:49 被阅读0次

    Ogre为我们实现了一个叫做Archive的类:文档存档类(我的理解是一个文件系统的目录,或者一个压缩包)。
    使用该类可以读取指定目录中的指定文件,并且返回该文件的数据流DataStream,之后就可以使用数据流来获取文件中的内容。

    使用Archive读取文件代码:

    // 使用Archive来读取文件系统目录(压缩文件目录)
    
    void ReadFileFromPath(const String& dirPath)
    {
    
       String type = "FileSystem";
    
       // 根据路径创建档案文件对象
    
       Archive* pArchive = ArchiveManager::getSingletonPtr()->load(dirPath, type, true);
    
      // 列出所有的文件名
    
      StringVectorPtr filenames = pArchive->list(true);
    
      StringVector::iterator it = filenames->begin();
    
      for (; it != paths->end(); ++it)
     {
          String temp = *it;
          DataStreamPtr fileStream = pArchive->open(temp);
          // 将文件内容读取到字符传中
          String str = fileStream->getAsString();
          // 获取一整行内容
          fileStream->getLine(true);
          ....
     }
    
     //创建文件
     //pArchive->create("filename");
    
    }
    

    实际上Archive::open函数内部是创建的c++标准库的filestream来进行读写文件,因此只要是filestream可以实现的功能Archive都可以实现。
    Archive是一个抽象类,Ogre已经实现了两个具体的Archive类,分别是FileSystemArchive和ZipArchive类,一个用于读取系统文件系统中的文件,另一个用于读取压缩包(Zip)中的文件。

    相关文章

      网友评论

          本文标题:使用Ogre读取文件

          本文链接:https://www.haomeiwen.com/subject/cokmuftx.html