Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Чтение директории на SD карте
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
kolobochishe
Хочу получить названия файлов в директории на SD карте. При указании корневой директории pDir = FS_OpenDir(""); - все нормально.
При указании любой другой pDir = FS_OpenDir("\\BS1"); - находит лишних 2 DirEntry. Файл лежащий там находит и называет правильно.
FS_DirEnt2Name(pDirEnt, acDirName) дает им имена: для первого "." и для второго ".."

Операционка - PowerPac. Все функции оттуда.

У кого-нибудь такое было?

Код
void MainTask(void)
{
  FS_DIR *pDir;
  FS_DIRENT *pDirEnt;
  pDir = FS_OpenDir(""); /* Open the root directory of default device */
  if (pDir)
  {
    do
    {
      char acDirName[20];
      pDirEnt = FS_ReadDir(pDir);
      FS_DirEnt2Name(pDirEnt, acDirName); /* Get name of the current DirEntry */
      if ((void*)pDirEnt == NULL)
      {
        break; /* No more files or directories */
      }
      sprintf(_acBuffer," %s\n", acName);
      FS_X_Log(_acBuffer);
    } while (1);
    FS_CloseDir(pDir);
  }
  else
  {
    FS_X_ErrorOut("Unable to open directory\n");
  }
}


И еще. При просмотре карты на компе ничего лишнего не увидел. Скрытые файлы отображал. Ничего скрытого не было.
aaarrr
Цитата(kolobochishe @ Dec 8 2011, 09:56) *
находит лишних 2 DirEntry

Они не лишние, так и должно быть. Почитайте описание FAT.
kolobochishe
sm.gif действительно

Цитата
В отличие от других директорий, корневая директория любой FAT не имеет штампа даты и времени, не имеет имени файла (кроме неявного имени ”\”), и не содержит ”.” и ”..” в первых двух записях.

Содержание записей точка и две точки:
• Запись точка это директория, указывающая на саму себя.
• Запись две точки указывает на первый кластер родительской директории (но 0, если родительская директория является корневой).


спасибо за наводку
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.