void FATFileSystem::dir_rewind(fs_dir_t dir) { FATFS_DIR *dh = static_cast<FATFS_DIR*>(dir); lock(); f_rewinddir(dh); unlock(); }
void DirectoryIterator::rewind() { if (!m_dir.same(false)) { f_rewinddir(m_dir); m_dirEntry = f_readdir(m_dir); m_index = 0; m_fileName = getPathName(); } }
void FATFileSystem::dir_seek(fs_dir_t dir, off_t offset) { FATFS_DIR *dh = static_cast<FATFS_DIR*>(dir); off_t dptr = static_cast<off_t>(dh->dptr); lock(); if (offset < dptr) { f_rewinddir(dh); } while (dptr < offset) { FILINFO finfo; FRESULT res; res = f_readdir(dh, &finfo); if (res != FR_OK) { break; } else if (finfo.fname[0] == 0) { break; } } unlock(); }
bool TestExtFile::test_rewinddir() { Variant d = f_opendir("test"); Variant entry; bool seen = false; while (!same(entry = f_readdir(d), false)) { if (same(entry, "test_ext_file.txt")) { seen = true; } } VERIFY(seen); seen = false; f_rewinddir(d); while (!same(entry = f_readdir(d), false)) { if (same(entry, "test_ext_file.txt")) { seen = true; } } VERIFY(seen); f_closedir(d); return Count(true); }
void FATFileSystem::dir_seek(fs_dir_t dir, off_t offset) { FATFS_DIR *dh = static_cast<FATFS_DIR*>(dir); lock(); if (offset < dh->index) { f_rewinddir(dh); } while (dh->index < offset) { FILINFO finfo; FRESULT res; #if _USE_LFN char lfname[NAME_MAX]; finfo.lfname = lfname; finfo.lfsize = NAME_MAX; #endif // _USE_LFN res = f_readdir(dh, &finfo); if (res != FR_OK) { break; } else if (finfo.fname[0] == 0) { break; } } unlock(); }