本文整理汇总了C++中FileList::IsDirectory方法的典型用法代码示例。如果您正苦于以下问题:C++ FileList::IsDirectory方法的具体用法?C++ FileList::IsDirectory怎么用?C++ FileList::IsDirectory使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类FileList
的用法示例。
在下文中一共展示了FileList::IsDirectory方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: StartRecord
void Replay::StartRecord(const FilePath & dirName)
{
DVASSERT(!isRecord);
DVASSERT(!isPlayback);
isRecord = true;
pauseReplay = false;
FileSystem::Instance()->DeleteDirectoryFiles(dirName, false);
FileSystem::Instance()->CreateDirectory(dirName);
FileList * list = new FileList("~doc:/");
int32 listSize = list->GetCount();
for(int32 i = 0; i < listSize; ++i)
{
String fileName = list->GetFilename(i);
if(!list->IsNavigationDirectory(i) && !list->IsDirectory(i) && fileName != "LastReplay.rep")
{
FileSystem::Instance()->CopyFile(list->GetPathname(i), dirName + fileName);
}
}
list->Release();
FilePath filePath = dirName + "LastReplay.rep";
file = File::Create(filePath, File::CREATE | File::WRITE);
Random::Instance()->Seed();
}
示例2: StartPlayback
void Replay::StartPlayback(const FilePath & dirName)
{
DVASSERT(!isRecord);
DVASSERT(!isPlayback);
pauseReplay = false;
isPlayback = true;
FileSystem::Instance()->DeleteDirectoryFiles("~doc:/", false);
FileList * list = new FileList(dirName);
int32 listSize = list->GetCount();
for(int32 i = 0; i < listSize; ++i)
{
String fileName = list->GetFilename(i);
if(!list->IsNavigationDirectory(i) && !list->IsDirectory(i))
{
FilePath existingFile = dirName + fileName;
FilePath newFile("~doc:/" + fileName);
FileSystem::Instance()->CopyFile(existingFile, newFile);
}
}
list->Release();
skipType = false;
file = File::Create("~doc:/LastReplay.rep", File::OPEN | File::READ);
}
示例3: DeleteDirectoryFiles
uint32 FileSystem::DeleteDirectoryFiles(const String & path, bool isRecursive)
{
uint32 fileCount = 0;
FileList * fileList = new FileList(path);
for(int i = 0; i < fileList->GetCount(); ++i)
{
if(fileList->IsDirectory(i))
{
if(!fileList->IsNavigationDirectory(i))
{
if(isRecursive)
{
fileCount += DeleteDirectoryFiles(fileList->GetPathname(i), isRecursive);
}
}
}
else
{
bool success = DeleteFile(fileList->GetPathname(i));
if(success)fileCount++;
}
}
SafeRelease(fileList);
return fileCount;
}
示例4: ParseSpriteDescriptors
void LightmapsPacker::ParseSpriteDescriptors()
{
FileList * fileList = new FileList(outputDir);
char8 buf[512];
uint32 readSize;
int32 itemsCount = fileList->GetCount();
for(int32 i = 0; i < itemsCount; ++i)
{
const FilePath & filePath = fileList->GetPathname(i);
if(fileList->IsDirectory(i) || !filePath.IsEqualToExtension(".txt"))
{
continue;
}
LightmapAtlasingData data;
data.meshInstanceName = filePath.GetBasename();
File * file = File::Create(filePath, File::OPEN | File::READ);
file->ReadLine(buf, sizeof(buf)); //textures count
readSize = file->ReadLine(buf, sizeof(buf)); //texture name
FilePath originalTextureName = outputDir + String(buf, readSize);
data.textureName = originalTextureName;
file->ReadLine(buf, sizeof(buf)); //image size
file->ReadLine(buf, sizeof(buf)); //frames count
file->ReadLine(buf, sizeof(buf)); //frame rect
int32 x, y, dx, dy, unused0, unused1, unused2;
sscanf(buf, "%d %d %d %d %d %d %d", &x, &y, &dx, &dy, &unused0, &unused1, &unused2);
dx++;//cause TexturePacker::ReduceRectToOriginalSize removed one pixel by default
dy++;
Vector2 textureSize = GetTextureSize(originalTextureName);
data.uvOffset = Vector2((float32)x/textureSize.x, (float32)y/textureSize.y);
data.uvScale = Vector2((float32)dx/textureSize.x, (float32)dy/textureSize.y);
file->Release();
atlasingData.push_back(data);
FileSystem::Instance()->DeleteFile(filePath);
}
fileList->Release();
}
示例5: RecursiveTreeWalk
void UIFileTree::RecursiveTreeWalk(const String & path, UITreeItemInfo * current)
{
FileList * fileList = new FileList(path);
// Find flags and setup them
for (int fi = 0; fi < fileList->GetCount(); ++fi)
{
bool addElement = true;
if (!fileList->IsDirectory(fi))
{
size_t extsSize = extensions.size();
if (extsSize > 0)
{
addElement = false;
String ext = FileSystem::GetExtension(fileList->GetFilename(fi));
for (size_t ei = 0; ei < extsSize; ++ei)
if (extensions[ei] == ext)
{
addElement = true;
break;
}
}
}
if (!isFolderNavigationEnabled)
if (fileList->IsNavigationDirectory(fi))
addElement = false;
if (fileList->GetFilename(fi) == ".")
addElement = false;
if (addElement)
{
UITreeItemInfo *child = new UITreeItemInfo(this);
child->Set(current->GetLevel() + 1, fileList->GetFilename(fi), fileList->GetPathname(fi), fileList->IsDirectory(fi));
current->AddChild(child);
// if (fileList->IsDirectory(fi) )
// {
// if (!fileList->IsNavigationDirectory(fi))
// {
// RecursiveTreeWalk(path + String("/") + fileList->GetFilename(fi), child);
// }
// }
}
}
SafeRelease(fileList);
}
示例6: CreateDescriptors
void LightmapsPacker::CreateDescriptors()
{
FileList * fileList = new FileList(outputDir);
int32 itemsCount = fileList->GetCount();
for(int32 i = 0; i < itemsCount; ++i)
{
const FilePath & filePath = fileList->GetPathname(i);
if(fileList->IsDirectory(i) || !filePath.IsEqualToExtension(".png"))
{
continue;
}
TextureDescriptor descriptor;
descriptor.Save(TextureDescriptor::GetDescriptorPathname(filePath));
}
fileList->Release();
}
示例7: DeleteDirectory
bool FileSystem::DeleteDirectory(const String & path, bool isRecursive)
{
FileList * fileList = new FileList(path);
for(int i = 0; i < fileList->GetCount(); ++i)
{
if(fileList->IsDirectory(i))
{
if(!fileList->IsNavigationDirectory(i))
{
if(isRecursive)
{
// Logger::Debug("- try to delete directory: %s / %s", fileList->GetPathname(i).c_str(), fileList->GetFilename(i).c_str());
bool success = DeleteDirectory(fileList->GetPathname(i), isRecursive);
// Logger::Debug("- delete directory: %s / %s- %d", fileList->GetPathname(i).c_str(), fileList->GetFilename(i).c_str(), success ? (1): (0));
if (!success)return false;
}
}
}
else
{
bool success = DeleteFile(fileList->GetPathname(i));
// Logger::Debug("- delete file: %s / %s- %d", fileList->GetPathname(i).c_str(), fileList->GetFilename(i).c_str(), success ? (1): (0));
if(!success)return false;
}
}
SafeRelease(fileList);
#ifdef __DAVAENGINE_WIN32__
String sysPath = SystemPathForFrameworkPath(path);
int32 chmodres = _chmod(sysPath.c_str(), _S_IWRITE); // change read-only file mode
int32 res = _rmdir(sysPath.c_str());
return (res == 0);
/*int32 res = ::RemoveDirectoryA(path.c_str());
if (res == 0)
{
Logger::Warning("Failed to delete directory: %s error: 0x%x", path.c_str(), GetLastError());
}
return (res != 0);*/
#elif defined(__DAVAENGINE_MACOS__) || defined(__DAVAENGINE_IPHONE__) || defined(__DAVAENGINE_ANDROID__)
int32 res = rmdir(SystemPathForFrameworkPath(path).c_str());
return (res == 0);
#endif //PLATFORMS
}
示例8: RecursiveTreeWalk
void ResourcePackerScreen::RecursiveTreeWalk(const String & inputPath, const String & outputPath)
{
uint64 packTime = SystemTimer::Instance()->AbsoluteMS();
FileList * fileList = new FileList(inputPath);
/* New $process folder structure */
String dataSourceRelativePath = inputPath;
StringReplace(dataSourceRelativePath, excludeDirectory, std::string(""));
// printf("%s\n", dataSourceRelativePath.c_str());
String processDirectoryPath = excludeDirectory + String("/") + GetProcessFolderName() + String("/") + dataSourceRelativePath;
if (FileSystem::Instance()->CreateDirectory(processDirectoryPath, true) == FileSystem::DIRECTORY_CANT_CREATE)
{
//Logger::Error("Can't create directory: %s", processDirectoryPath.c_str());
}
if(clearProcessDirectory)
{
FileSystem::Instance()->DeleteDirectoryFiles(processDirectoryPath, false);
}
//String outputPath = outputPath;
if (FileSystem::Instance()->CreateDirectory(outputPath) == FileSystem::DIRECTORY_CANT_CREATE)
{
//Logger::Error("Can't create directory: %s", outputPath.c_str());
}
CommandLineParser::Instance()->ClearFlags();
std::list<DefinitionFile *> definitionFileList;
// Find flags and setup them
for (int fi = 0; fi < fileList->GetCount(); ++fi)
{
if (!fileList->IsDirectory(fi))
{
if (fileList->GetFilename(fi) == "flags.txt")
{
String fullname = inputPath + String("/") + fileList->GetFilename(fi);
ProcessFlags(fullname);
break;
}
}
}
bool modified = isGfxModified;
// Process all psd / png files
if (IsMD5ChangedDir(processDirectoryPath, inputPath, "dir.md5", false))
{
modified = true;
//if (Core::Instance()->IsConsoleMode())
// printf("[Directory changed - rebuild: %s]\n", inputGfxDirectory.c_str());
}
if (modified)
{
FileSystem::Instance()->DeleteDirectoryFiles(outputPath, false);
for (int fi = 0; fi < fileList->GetCount(); ++fi)
{
if (!fileList->IsDirectory(fi))
{
String fullname = inputPath + String("/") + fileList->GetFilename(fi);
if (FileSystem::GetExtension(fullname) == ".psd")
{
DefinitionFile * defFile = ProcessPSD(processDirectoryPath, fullname, fileList->GetFilename(fi));
definitionFileList.push_back(defFile);
}
else if(isLightmapsPacking && FileSystem::GetExtension(fullname) == ".png")
{
DefinitionFile * defFile = new DefinitionFile();
defFile->LoadPNG(fullname, processDirectoryPath);
definitionFileList.push_back(defFile);
}
else if (FileSystem::GetExtension(fullname) == ".pngdef")
{
DefinitionFile * defFile = new DefinitionFile();
if (defFile->LoadPNGDef(fullname, processDirectoryPath))
{
definitionFileList.push_back(defFile);
}
else
{
SafeDelete(defFile);
}
}
}
}
//
if (definitionFileList.size() > 0 && modified)
{
TexturePacker packer;
String outputPathWithSlash = outputPath + String("/");
if(isLightmapsPacking)
{
packer.UseOnlySquareTextures();
//.........这里部分代码省略.........