本文整理汇总了C++中PathName::RemoveDirectorySpec方法的典型用法代码示例。如果您正苦于以下问题:C++ PathName::RemoveDirectorySpec方法的具体用法?C++ PathName::RemoveDirectorySpec怎么用?C++ PathName::RemoveDirectorySpec使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PathName
的用法示例。
在下文中一共展示了PathName::RemoveDirectorySpec方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tmp
//.........这里部分代码省略.........
}
char longNameData[BLOCKSIZE];
ReadBlock (longNameData);
longNameData[size] = 0;
longName = longNameData;
haveLongName = true;
}
else
{
Skip (((size + sizeof(Header) - 1) / sizeof(Header))
* sizeof(Header));
}
continue;
}
if (haveLongName)
{
dest = longName;
haveLongName = false;
}
// skip directory prefix
if (lpszPrefix != 0
&& PathName::Compare(lpszPrefix, dest, prefixLen) == 0)
{
PathName tmp (dest);
dest = tmp.Get() + prefixLen;
}
// make the destination path name
PathName path (destDir);
if (! makeDirectories)
{
dest.RemoveDirectorySpec ();
}
path += dest;
// notify the client
if (pCallback != 0)
{
pCallback->OnBeginFileExtraction (path.Get(), size);
}
// create the destination directory
Directory::Create (PathName(path).RemoveFileSpec());
// remove the existing file
if (File::Exists(path))
{
File::Delete (path, true);
}
// extract the file
FileStream streamOut (File::Open(path,
FileMode::Create,
FileAccess::Write,
false));
size_t bytesRead = 0;
while (bytesRead < size)
{
size_t remaining = size - bytesRead;
size_t n = (remaining > buffer.GetCapacity() ? buffer.GetCapacity() : remaining);
if (Read(buffer.GetBuffer(), n) != n)
{
FATAL_EXTRACTOR_ERROR ("TarExtractor::Extract",
T_("Invalid package archive file."),