首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检查google-nativeclient文件系统中是否存在目录?

检查google-nativeclient文件系统中是否存在目录?
EN

Stack Overflow用户
提问于 2013-01-24 22:42:12
回答 1查看 216关注 0票数 0

我正在尝试检查本地客户端file system中是否存在目录,但找不到任何函数来执行此操作。我尝试为目录创建一个PPB_FileRef,然后使用PPB_FileIO::Open打开它,然后调用PPB_FileIO::Query,但PPB_FileIO::Open返回PP_ERROR_NOTAFILE,然后第二次调用失败。

这是我一直在尝试的代码,为了简单起见,一些初始化被省略了。

代码语言:javascript
复制
PP_Instance instance; // initialised elsewhere
PPB_FileRef *fileRefInterface; // initialised elsewhere
PPB_FileIO *fileIOInterface; // initialised elsewhere
PP_Resource fileSystemResource; // initialised elsewhere

PP_Resource fileRefResource = fileRefInterface->Create(
  fileSystemResource,
  "/directory");

PP_Resource fileIOResource = fileIOInterface->Create(instance);

// This call is returning PP_ERROR_NOTAFILE
//
int32_t result = fileIOInterface->Open(
  fileIOResource,
  fileRefResource,
  PP_FILEOPENFLAG_READ,
  PP_BlockUntilComplete()); // this is being called from a background thread.
if (result != PP_OK)
{
  return false;
}

PP_FileInfo info;
result = fileIOInterface->Query(fileIOResource, &info, PP_BlockUntilComplete());
if (result != PP_OK)
{
  return info.type == PP_FILETYPE_DIRECTORY;
}

return false;

对于一个有效的PPB_FileRefPPB_FileIO::Open的返回值PP_ERROR_NOTAFILE是否足以让我判断它是一个目录,或者有没有其他更好的方法我应该使用?

谢谢,詹姆斯

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-25 04:04:26

是的,目前确定PPB_FileRef是否引用某个目录的方法是尝试打开该目录并查找PP_ERROR_NOTAFILE返回值。

由于后台PP_ERROR_NOTAFILE是在创建pepper_25分支之后添加的,所以在pepper_26在开发工具包中可用之前,应该使用pepper_canary进行开发以获得其在pp_errors.h中的定义。更多详情请参考相关Chrome change list,其中特别提到在尝试打开目录时会使用该返回值。

目前的行为可以说是有点不透明。有一个“开发”(实验性/未完成)接口PPB_DirectoryReader,当它发布时,将提供一种更直接的方式来处理目录。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14503920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档