20 FsDefs::RESULT FsEntry::open(
const char* path,
bool readOnly,
bool createAlways,
bool isDirectory) {
21 FsDefs::RESULT result = internalPrepare(path, isDirectory);
22 if (result != FsDefs::RES_SUCCESS) {
26 mFlags.bits.readOnly = readOnly;
27 mFlags.bits.directory = isDirectory;
28 mFlags.bits.createAlways = createAlways;
29 result = Fs::open(path,
this);
30 if (result != FsDefs::RES_SUCCESS) {
35 mFlags.bits.sectorCacheInvalid =
true;
40 FsDefs::RESULT FsEntry::del(
const char* path,
bool isDirectory) {
41 FsDefs::RESULT result = internalPrepare(path, isDirectory);
42 if (result != FsDefs::RES_SUCCESS) {
46 mFlags.bits.directory = isDirectory;
47 result = Fs::open(path,
this);
48 if (result != FsDefs::RES_SUCCESS) {
53 result = Fs::del(
this);
59 FsDefs::RESULT FsEntry::internalPrepare(
const char* path,
bool isDirectory) {
64 if (path[strlen(path) - 1] ==
'/') {
66 return FsDefs::RES_INVALID_PATH;
71 return FsDefs::RES_INVALID_PATH;
74 mSector = (FsDefs::SECTOR*) malloc(
sizeof(FsDefs::SECTOR));
76 return FsDefs::RES_OUT_OF_MEMORY;
78 return FsDefs::RES_SUCCESS;