UsbFat
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | List of all members
FatFileSystem Class Reference

Integration class for the FatLib library. More...

#include <FatFileSystem.h>

Inheritance diagram for FatFileSystem:
Inheritance graph
[legend]
Collaboration diagram for FatFileSystem:
Collaboration graph
[legend]

Public Member Functions

bool begin (uint8_t part=0)
 
uint8_t blocksPerCluster () const
 
uint32_t blocksPerFat () const
 
cache_tcacheClear ()
 
bool chdir (bool set_cwd=false)
 
bool chdir (const char *path, bool set_cwd=false)
 
void chvol ()
 
uint32_t clusterCount () const
 
uint8_t clusterSizeShift () const
 
uint32_t dataStartBlock () const
 
int8_t dbgFat (uint32_t n, uint32_t *v)
 
bool exists (const char *path)
 
uint8_t fatCount ()
 
uint32_t fatStartBlock () const
 
uint8_t fatType () const
 
int32_t freeClusterCount ()
 
bool init ()
 
bool init (uint8_t part)
 
void ls (uint8_t flags=0)
 
void ls (const char *path, uint8_t flags=0)
 
void ls (print_t *pr, uint8_t flags)
 
void ls (print_t *pr, const char *path, uint8_t flags)
 
bool mkdir (const char *path, bool pFlag=true)
 
File open (const char *path, uint8_t mode=FILE_READ)
 
bool remove (const char *path)
 
bool rename (const char *oldPath, const char *newPath)
 
bool rmdir (const char *path)
 
uint16_t rootDirEntryCount () const
 
uint32_t rootDirStart () const
 
bool truncate (const char *path, uint32_t length)
 
FatVolumevol ()
 
uint32_t volumeBlockCount () const
 
FatFilevwd ()
 
bool wipe (print_t *pr=0)
 

Detailed Description

Integration class for the FatLib library.

Member Function Documentation

bool FatFileSystem::begin ( uint8_t  part = 0)
inline

Initialize an FatFileSystem object.

Parameters
[in]partpartition to initialize.
Returns
The value true is returned for success and the value false is returned for failure.
uint8_t FatVolume::blocksPerCluster ( ) const
inlineinherited
Returns
The volume's cluster size in blocks.
uint32_t FatVolume::blocksPerFat ( ) const
inlineinherited
Returns
The number of blocks in one FAT.
cache_t* FatVolume::cacheClear ( )
inlineinherited

Clear the cache and returns a pointer to the cache. Not for normal apps.

Returns
A pointer to the cache buffer or zero if an error occurs.
bool FatFileSystem::chdir ( bool  set_cwd = false)
inline

Change a volume's working directory to root

Changes the volume's working directory to the SD's root directory. Optionally set the current working directory to the volume's working directory.

Parameters
[in]set_cwdSet the current working directory to this volume's working directory if true.
Returns
The value true is returned for success and the value false is returned for failure.
bool FatFileSystem::chdir ( const char *  path,
bool  set_cwd = false 
)
inline

Change a volume's working directory

Changes the volume working directory to the path subdirectory. Optionally set the current working directory to the volume's working directory.

Example: If the volume's working directory is "/DIR", chdir("SUB") will change the volume's working directory from "/DIR" to "/DIR/SUB".

If path is "/", the volume's working directory will be changed to the root directory

Parameters
[in]pathThe name of the subdirectory.
[in]set_cwdSet the current working directory to this volume's working directory if true.
Returns
The value true is returned for success and the value false is returned for failure.
void FatFileSystem::chvol ( )
inline

Set the current working directory to a volume's working directory.

This is useful with multiple SD cards.

The current working directory is changed to this volume's working directory.

This is like the Windows/DOS <drive letter>: command.

uint32_t FatVolume::clusterCount ( ) const
inlineinherited
Returns
The total number of clusters in the volume.
uint8_t FatVolume::clusterSizeShift ( ) const
inlineinherited
Returns
The shift count required to multiply by blocksPerCluster.
uint32_t FatVolume::dataStartBlock ( ) const
inlineinherited
Returns
The logical block number for the start of file data.
int8_t FatVolume::dbgFat ( uint32_t  n,
uint32_t *  v 
)
inlineinherited

Debug access to FAT table

Parameters
[in]ncluster number.
[out]vvalue of entry
Returns
true for success or false for failure
bool FatFileSystem::exists ( const char *  path)
inline

Test for the existence of a file.

Parameters
[in]pathPath of the file to be tested for.
Returns
true if the file exists else false.
uint8_t FatVolume::fatCount ( )
inlineinherited
Returns
The number of File Allocation Tables.
uint32_t FatVolume::fatStartBlock ( ) const
inlineinherited
Returns
The logical block number for the start of the first FAT.
uint8_t FatVolume::fatType ( ) const
inlineinherited
Returns
The FAT type of the volume. Values are 12, 16 or 32.
int32_t FatVolume::freeClusterCount ( )
inherited

Volume free space in clusters.

Returns
Count of free clusters for success or -1 if an error occurs.
bool FatVolume::init ( )
inlineinherited

Initialize a FAT volume. Try partition one first then try super floppy format.

Returns
The value true is returned for success and the value false is returned for failure.
bool FatVolume::init ( uint8_t  part)
inherited

Initialize a FAT volume.

Parameters
[in]partThe partition to be used. Legal values for part are 1-4 to use the corresponding partition on a device formatted with a MBR, Master Boot Record, or zero if the device is formatted as a super floppy with the FAT boot sector in block zero.
Returns
The value true is returned for success and the value false is returned for failure.
void FatFileSystem::ls ( uint8_t  flags = 0)
inline

List the directory contents of the volume working directory to Serial.

Parameters
[in]flagsThe inclusive OR of

LS_DATE - Print file modification date

LS_SIZE - Print file size.

LS_R - Recursive list of subdirectories.

void FatFileSystem::ls ( const char *  path,
uint8_t  flags = 0 
)
inline

List the directory contents of a directory to Serial.

Parameters
[in]pathdirectory to list.
[in]flagsThe inclusive OR of

LS_DATE - Print file modification date

LS_SIZE - Print file size.

LS_R - Recursive list of subdirectories.

void FatFileSystem::ls ( print_t pr,
uint8_t  flags 
)
inline

List the directory contents of the volume working directory.

Parameters
[in]prPrint stream for list.
[in]flagsThe inclusive OR of

LS_DATE - Print file modification date

LS_SIZE - Print file size.

LS_R - Recursive list of subdirectories.

void FatFileSystem::ls ( print_t pr,
const char *  path,
uint8_t  flags 
)
inline

List the directory contents of a directory.

Parameters
[in]prPrint stream for list.
[in]pathdirectory to list.
[in]flagsThe inclusive OR of

LS_DATE - Print file modification date

LS_SIZE - Print file size.

LS_R - Recursive list of subdirectories.

bool FatFileSystem::mkdir ( const char *  path,
bool  pFlag = true 
)
inline

Make a subdirectory in the volume working directory.

Parameters
[in]pathA path with a valid 8.3 DOS name for the subdirectory.
[in]pFlagCreate missing parent directories if true.
Returns
The value true is returned for success and the value false is returned for failure.
File FatFileSystem::open ( const char *  path,
uint8_t  mode = FILE_READ 
)
inline

open a file

Parameters
[in]pathlocation of file to be opened.
[in]modeopen mode flags.
Returns
a File object.
bool FatFileSystem::remove ( const char *  path)
inline

Remove a file from the volume working directory.

Parameters
[in]pathA path with a valid 8.3 DOS name for the file.
Returns
The value true is returned for success and the value false is returned for failure.
bool FatFileSystem::rename ( const char *  oldPath,
const char *  newPath 
)
inline

Rename a file or subdirectory.

Parameters
[in]oldPathPath name to the file or subdirectory to be renamed.
[in]newPathNew path name of the file or subdirectory.

The newPath object must not exist before the rename call.

The file to be renamed must not be open. The directory entry may be moved and file system corruption could occur if the file is accessed by a file object that was opened before the rename() call.

Returns
The value true is returned for success and the value false is returned for failure.
bool FatFileSystem::rmdir ( const char *  path)
inline

Remove a subdirectory from the volume's working directory.

Parameters
[in]pathA path with a valid 8.3 DOS name for the subdirectory.

The subdirectory file will be removed only if it is empty.

Returns
The value true is returned for success and the value false is returned for failure.
uint16_t FatVolume::rootDirEntryCount ( ) const
inlineinherited
Returns
The number of entries in the root directory for FAT16 volumes.
uint32_t FatVolume::rootDirStart ( ) const
inlineinherited
Returns
The logical block number for the start of the root directory on FAT16 volumes or the first cluster number on FAT32 volumes.
bool FatFileSystem::truncate ( const char *  path,
uint32_t  length 
)
inline

Truncate a file to a specified length. The current file position will be maintained if it is less than or equal to length otherwise it will be set to end of file.

Parameters
[in]pathA path with a valid 8.3 DOS name for the file.
[in]lengthThe desired length for the file.
Returns
The value true is returned for success and the value false is returned for failure.
FatVolume* FatFileSystem::vol ( )
inline
Returns
a pointer to the FatVolume object.
uint32_t FatVolume::volumeBlockCount ( ) const
inlineinherited
Returns
The number of blocks in the volume
FatFile* FatFileSystem::vwd ( )
inline
Returns
a pointer to the volume working directory.
bool FatFileSystem::wipe ( print_t pr = 0)
inline

Wipe all data from the volume. You must reinitialize the volume before accessing it again.

Parameters
[in]prprint stream for status dots.
Returns
true for success else false.

The documentation for this class was generated from the following file: