реклама на сайте
подробности

 
 
> Чтение директории на SD карте
kolobochishe
сообщение Dec 8 2011, 05:56
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634



Хочу получить названия файлов в директории на 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");
  }
}


И еще. При просмотре карты на компе ничего лишнего не увидел. Скрытые файлы отображал. Ничего скрытого не было.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
aaarrr
сообщение Dec 8 2011, 10:58
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(kolobochishe @ Dec 8 2011, 09:56) *
находит лишних 2 DirEntry

Они не лишние, так и должно быть. Почитайте описание FAT.
Go to the top of the page
 
+Quote Post
kolobochishe
сообщение Dec 8 2011, 11:41
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634



sm.gif действительно

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

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


спасибо за наводку

Сообщение отредактировал kolobochishe - Dec 8 2011, 11:45
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 14:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01368 секунд с 7
ELECTRONIX ©2004-2016