World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
I/O Read/Write
+ Граф связей класса I/O Read/Write:

Файлы

файл  avio.h
 

Подробное описание

Directory listing

The directory listing API makes it possible to list files on remote servers.

Some of possible use cases:

Opening a directory

At first, a directory needs to be opened by calling avio_open_dir() supplied with a URL and, optionally, AVDictionary containing protocol-specific parameters. The function returns zero or positive integer and allocates AVIODirContext on success.

if (avio_open_dir(&ctx, "smb://example.com/some_dir", NULL) < 0) {
fprintf(stderr, "Cannot open directory.\n");
abort();
}

This code tries to open a sample directory using smb protocol without any additional parameters.

Reading entries

Each directory's entry (i.e. file, another directory, anything else within AVIODirEntryType) is represented by AVIODirEntry. Reading consecutive entries from an opened AVIODirContext is done by repeatedly calling avio_read_dir() on it. Each call returns zero or positive integer if successful. Reading can be stopped right after the NULL entry has been read – it means there are no entries left to be read. The following code reads all entries from a directory associated with ctx and prints their names to standard output.

AVIODirEntry *entry = NULL;
for (;;) {
if (avio_read_dir(ctx, &entry) < 0) {
fprintf(stderr, "Cannot list directory.\n");
abort();
}
if (!entry)
break;
printf("%s\n", entry->name);
}
avio_read_dir
int avio_read_dir(AVIODirContext *s, AVIODirEntry **next)
avio_free_directory_entry
void avio_free_directory_entry(AVIODirEntry **entry)
AVIODirEntry::name
char * name
Definition: avio.h:87
ctx
EGLContext ctx
Definition: SDL_egl.h:952
AVIODirEntry
Definition: avio.h:86
avio_open_dir
int avio_open_dir(AVIODirContext **s, const char *url, AVDictionary **options)
AVIODirContext
Definition: avio.h:103