本文整理汇总了C++中FileStream::copyFrom方法的典型用法代码示例。如果您正苦于以下问题:C++ FileStream::copyFrom方法的具体用法?C++ FileStream::copyFrom怎么用?C++ FileStream::copyFrom使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FileStream
的用法示例。
在下文中一共展示了FileStream::copyFrom方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: extractFile
bool ZipArchive::extractFile(const char *pathInZip, const char *filename, bool *crcFail /* = NULL */)
{
if(crcFail)
*crcFail = false;
const CentralDir *realCD = findFileInfo(pathInZip);
if(realCD == NULL)
return false;
FileStream dest;
if(! dest.open(filename, Torque::FS::File::Write))
return false;
Stream *source = openFile(pathInZip, Read);
if(source == NULL)
{
dest.close();
return false;
}
// [tom, 2/7/2007] CRC checking the lazy man's way
// ZipStatFilter only fails if it doesn't have a central directory, so this is safe
CentralDir fakeCD;
ZipStatFilter zsf(&fakeCD);
zsf.attachStream(source);
bool ret = dest.copyFrom(&zsf);
zsf.detachStream();
if(ret && fakeCD.mCRC32 != realCD->mCRC32)
{
if(crcFail)
*crcFail = true;
if(isVerbose())
Con::errorf("ZipArchive::extractFile - CRC failure extracting file %s", pathInZip);
ret = false;
}
closeFile(source);
dest.close();
return ret;
}
示例2: copySketchupTexture
//-----------------------------------------------------------------------------
/// Copy a texture from a KMZ to a cache. Note that the texture filename is modified
void copySketchupTexture(const Torque::Path &path, String &textureFilename)
{
if (textureFilename.isEmpty())
return;
Torque::Path texturePath(textureFilename);
texturePath.setExtension(findTextureExtension(texturePath));
String cachedTexFilename = String::ToString("%s_%s.cached",
TSShapeLoader::getShapePath().getFileName().c_str(), texturePath.getFileName().c_str());
Torque::Path cachedTexPath;
cachedTexPath.setRoot(path.getRoot());
cachedTexPath.setPath(path.getPath());
cachedTexPath.setFileName(cachedTexFilename);
cachedTexPath.setExtension(texturePath.getExtension());
FileStream *source;
FileStream *dest;
if ((source = FileStream::createAndOpen(texturePath.getFullPath(), Torque::FS::File::Read)) == NULL)
return;
if ((dest = FileStream::createAndOpen(cachedTexPath.getFullPath(), Torque::FS::File::Write)) == NULL)
{
delete source;
return;
}
dest->copyFrom(source);
delete dest;
delete source;
// Update the filename in the material
cachedTexPath.setExtension("");
textureFilename = cachedTexPath.getFullPath();
}