示例#1
0
FileAccess *FileAccess::open(const String &p_path, int p_mode_flags, Error *r_error) {

	//try packed data first

	FileAccess *ret = NULL;
	if (!(p_mode_flags & WRITE) && PackedData::get_singleton() && !PackedData::get_singleton()->is_disabled()) {
		ret = PackedData::get_singleton()->try_open_path(p_path);
		if (ret) {
			if (r_error)
				*r_error = OK;
			return ret;
		}
	}

	ret = create_for_path(p_path);
	Error err = ret->_open(p_path, p_mode_flags);

	if (r_error)
		*r_error = err;
	if (err != OK) {

		memdelete(ret);
		ret = NULL;
	}

	return ret;
}
示例#2
0
uint64_t FileAccess::get_modified_time(const String &p_file) {

	FileAccess *fa = create_for_path(p_file);
	ERR_FAIL_COND_V(!fa, 0);

	uint64_t mt = fa->_get_modified_time(p_file);
	memdelete(fa);
	return mt;
}
示例#3
0
uint64_t FileAccess::get_modified_time(const String &p_file) {

	if (PackedData::get_singleton() && !PackedData::get_singleton()->is_disabled() && PackedData::get_singleton()->has_path(p_file))
		return 0;

	FileAccess *fa = create_for_path(p_file);
	ERR_FAIL_COND_V(!fa, 0);

	uint64_t mt = fa->_get_modified_time(p_file);
	memdelete(fa);
	return mt;
}
示例#4
0
DirAccess *DirAccess::open(const String& p_path,Error *r_error) {

	DirAccess *da=create_for_path(p_path);

	ERR_FAIL_COND_V(!da,NULL);
	Error err = da->change_dir(p_path);
	if (r_error)
		*r_error=err;
	if (err!=OK) {
		memdelete(da);
		return NULL;
	}

	return da;
}