bool FileSystemProvider_File::next_file(DirectoryListingEntry &entry)
{
	bool next = dir_scanner.next();

	if( next )
	{
		entry.set_directory(dir_scanner.is_directory());
		entry.set_filename(dir_scanner.get_name());
		entry.set_hidden(dir_scanner.is_hidden());
		entry.set_readable(dir_scanner.is_readable());
		entry.set_writable(dir_scanner.is_writable());
	}

	return next;
}
bool FileSystemProvider_Zip::next_file(DirectoryListingEntry &entry)
{
	if( file_list.empty() ) 
		return false;

	if( index > file_list.size() - 1 )
		return false;

	std::string filename = file_list[index].get_archive_filename();
	if (filename[0] == '/')
		filename = filename.substr(1, std::string::npos);

	entry.set_filename(filename);
	entry.set_readable(true);
	entry.set_directory(file_list[index].is_directory());
	entry.set_hidden(false); // todo
	entry.set_writable(false); // todo
	index++;

	return true;
}