mirror of
https://github.com/oopuuu/zTC1.git
synced 2025-12-17 23:48:13 +08:00
74 lines
1.9 KiB
C
74 lines
1.9 KiB
C
#ifndef __DIR_H__
|
|
#define __DIR_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif//__cplusplus
|
|
|
|
#include "fsinfo.h"
|
|
|
|
//file attributes define
|
|
#define ATTR_READ_ONLY 0x01
|
|
#define ATTR_HIDDEN 0x02
|
|
#define ATTR_SYSTEM 0x04
|
|
#define ATTR_VOLUME_ID 0x08
|
|
#define ATTR_DIRECTORY 0x10
|
|
#define ATTR_ARCHIVE 0x20
|
|
#define ATTR_LONG_NAME 0x0f //ATTR_READ_ONLY | ATTR_HIDDEN | ATTR_SYSTEM | ATTR_VOLUME_ID
|
|
#define ATTR_LONG_NAME_MASK 0x3f //ATTR_READ_ONLY | ATTR_HIDDEN | ATTR_SYSTEM | ATTR_VOLUME_ID | ATTR_DIRECTORY | ATTR_ARCHIVE
|
|
#define ATTR_RECYCLED_MASK 0x16 //ATTR_DIRECTORY | ATTR_HIDDEN | ATTR_SYSTEM
|
|
|
|
|
|
|
|
typedef enum _ENTRY_TYPE
|
|
{
|
|
ENTRY_FILE,
|
|
ENTRY_FOLDER, //文件夹目录项,不会马上进入该子文件夹
|
|
ENTRY_END, //当前目录搜索完毕
|
|
ENTRY_RECYCLED,
|
|
ENTRY_DOT,
|
|
ENTRY_LONG_NAME,
|
|
ENTRY_DELETED_FILE,
|
|
ENTRY_UNKNOWN
|
|
|
|
} ENTRY_TYPE;
|
|
|
|
|
|
void DirSetStartEntry(FS_CONTEXT* FsContext, uint32_t StartSecNum, uint8_t Offset, bool InitFlag);
|
|
|
|
uint32_t DirGetSonClusNum(FS_CONTEXT* FsContext);
|
|
|
|
uint32_t DirGetSonSecNum(FS_CONTEXT* FsContext);
|
|
|
|
void DirSetSonClusNum(FS_CONTEXT* FsContext, uint32_t ClusNum);
|
|
|
|
//在当前目录下找下一个文件目录项
|
|
uint8_t DirGetNextEntry(FS_CONTEXT* FsContext);
|
|
|
|
bool DirFindNextFolder(FS_CONTEXT* FsContext);
|
|
|
|
//进入子目录
|
|
bool DirEnterSonFolder(FS_CONTEXT* FsContext);
|
|
|
|
//返回父目录
|
|
bool DirEnterParentFolder(FS_CONTEXT* FsContext);
|
|
|
|
void RewindFolderStart(FS_CONTEXT* FsContext);
|
|
|
|
bool DirNameConvert(uint8_t* DstFileName, uint8_t* SrcFileName);
|
|
|
|
void DirGenItem(FS_CONTEXT* FsContext, uint8_t* DirName, uint32_t StartClusNum, uint32_t Size, uint8_t Attribute);
|
|
|
|
void DirGenLongItem(FS_CONTEXT* FsContext, uint8_t* longName, uint8_t* shortName, uint8_t Len);
|
|
|
|
// Load file/folder long name.
|
|
bool GetLongName(FS_CONTEXT* FsContext, uint32_t ParentFoldSect, uint32_t SectorNum, uint8_t Offset, uint8_t* LongFileName, uint8_t GetMaxLength);
|
|
|
|
bool FindNextFolder(FS_CONTEXT* FsContext);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif//__cplusplus
|
|
|
|
#endif
|