Exemplo n.º 1
0
	void FileSystem::ReadFolder(const std::string& dir)
	{
		tinydir_dir d;
		tinydir_open(&d, dir.c_str());

		while (d.has_next)
		{
			tinydir_file file;
			tinydir_readfile(&d, &file);

			if (file.is_dir && strcmp(file.name, ".") && strcmp(file.name, ".."))
			{
				ReadFolder(file.path);
			}
			else
			{
				if (strcmp(file.name, ".") && strcmp(file.name, ".."))
				{
					(*this)[file.name] = file.path;
				}
			}

			tinydir_next(&d);
		}

		tinydir_close(&d);
	}
Exemplo n.º 2
0
	void FileSystem::Refresh()
	{
		clear();

		for (const auto& folder : m_folders)
		{
			ReadFolder(folder);
		}
	}
Exemplo n.º 3
0
char * CLoader7Z::ReadUnPackInfo(char * buf)
{
//ILogger::log() << "ReadUnPackInfo()\n";

    if (*buf != kUnPackInfo)
    {
//ILogger::log() << "Erreur ! ("<<__LINE__<<")\n";
        throw "Fichier incorrect";
        return buf;
    }

    ++buf;

    if (*buf != kFolder)
    {
//ILogger::log() << "Erreur ! ("<<__LINE__<<")\n";
        throw "Fichier incorrect";
        return buf;
    }

    ++buf;

    uint64_t num_folders = ConvertUint64(buf);
    buf += 8;

    uint8_t external = *buf;
    ++buf;

    switch (external)
    {
    case 0:

        for (uint64_t i = 0; i < num_folders; ++i)
        {
            buf = ReadFolder(buf);
        }

        break;

    case 1:
    {
        //uint64_t data_stream_index = ConvertUint64(buf);
        buf += 8;
        break;
    }

    default:
//ILogger::log() << "Erreur ! ("<<__LINE__<<")\n";
        throw "Fichier incorrect";
        return buf;
    }

    if (*buf != kCodersUnPackSize)
    {
//ILogger::log() << "Erreur ! ("<<__LINE__<<")\n";
        throw "Fichier incorrect";
        return buf;
    }

    ++buf;

    /*
      for(Folders)
        for(Folder.NumOutStreams)
         UINT64 UnPackSize;
    */

    if (*buf == kCRC)
    {
        //UnPackDigests[NumFolders]
    }

    if (*buf != kEnd)
    {
//ILogger::log() << "Erreur ! ("<<__LINE__<<")\n";
        throw "Fichier incorrect";
        return buf;
    }

    ++buf;

    return buf;
}