当前位置: 首页>>代码示例>>C++>>正文


C++ ZipFile::setAllFilesVisible方法代码示例

本文整理汇总了C++中ZipFile::setAllFilesVisible方法的典型用法代码示例。如果您正苦于以下问题:C++ ZipFile::setAllFilesVisible方法的具体用法?C++ ZipFile::setAllFilesVisible怎么用?C++ ZipFile::setAllFilesVisible使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ZipFile的用法示例。


在下文中一共展示了ZipFile::setAllFilesVisible方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: if

FILE *std_fopen(const char *name, const char *mode) {
	if (!inited) {
		for (int r = 0; r < MAX_FILE_HANDLES; r++) {
			s_handle[r].used = false;
		}
		inited = true;
		currentDir[0] = '\0';
	}

	char realName[MAXPATHLEN];

	// Remove file system prefix
	if ((name[0] == 'd') && (name[1] == 's') && (name[2] == ':') && (name[3] == '/')) {
		strlcpy(realName, name + 4, MAXPATHLEN);
	} else if ((name[0] == 'm') && (name[1] == 'p') && (name[2] == ':') && (name[3] == '/')) {
		strlcpy(realName, name + 4, MAXPATHLEN);
	} else {
		strlcpy(realName, name, MAXPATHLEN);
	}

//	consolePrintf("Open file:");
//	consolePrintf("'%s', [%s]", name, realName);

	if (DS::isGBAMPAvailable()) {
		FAT_chdir("/");

		// Turn all back slashes into forward slashes for gba_nds_fat
		char *p = realName;
		while (*p) {
			if (*p == '\\')
				*p = '/';
			p++;
		}

		FAT_FILE *result = FAT_fopen(realName, mode);

		if (result == 0) {
//			consolePrintf("Error code %d\n", result);
			//consolePrintf("Opening file %s\n", realName);
		} else {
//			consolePrintf("Opened file %d\n", result);
		}
//		MT_memoryReport();

		return (FILE *)result;
	}

	// Fail to open file for writing.  It's in ROM!

	// Allocate a file handle
	int r = 0;
	while (s_handle[r].used) {
		r++;
		assert(r < MAX_FILE_HANDLES);
	}

	char *data;

	ZipFile *zip = DSFileSystemNode::getZip();
	if (!zip) {
//		consolePrintf("No zip yet!");
		return NULL;
	}

	// Grab the data if it exists

	zip->setAllFilesVisible(true);

	if (currentDir[0] != 0) {
		char nameWithPath[128];
		sprintf(nameWithPath, "%s\\%s", currentDir, realName);
		strcpy(realName, nameWithPath);
	}

//	consolePrintf("fopen(%s, %s)\n", realName, name);

	if (zip->findFile(realName)) {
		data = zip->getFile();
		zip->setAllFilesVisible(false);

		// Allocate a file handle
		r = 0;
		while (s_handle[r].used)
			r++;


		s_handle[r].used = true;
		s_handle[r].pos = 0;
		s_handle[r].data = data;
		s_handle[r].size = zip->getFileSize();

//		consolePrintf("Opened file %d: %s (%s)   ", r, realName, name);
		return &s_handle[r];
	} else {
		zip->setAllFilesVisible(false);
//		consolePrintf("Not found: %s (%s)  ", realName, name);
		return NULL;
	}
}
开发者ID:86400,项目名称:scummvm,代码行数:99,代码来源:ds-fs.cpp


注:本文中的ZipFile::setAllFilesVisible方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。