}
error("Couldn't create %s in FATFileSystem::FATFileSystem\n",n);
}
-
+
FATFileSystem::~FATFileSystem() {
for(int i=0; i<_DRIVES; i++) {
if(_ffs[i] == this) {
}
}
}
-
+
FileHandle *FATFileSystem::open(const char* name, int flags) {
FFSDEBUG("open(%s) on filesystem [%s], drv [%d]\n", name, _name, _fsid);
char n[64];
}
return new FATFileHandle(fh);
}
-
+
int FATFileSystem::remove(const char *filename) {
FRESULT res = f_unlink(filename);
if(res) {
return 0;
}
+int FATFileSystem::rename(const char *filename1, const char *filename2) {
+ FRESULT res = f_rename(filename1, filename2);
+ if(res) {
+ FFSDEBUG("f_rename() failed (%d, %s)\n", res, FR_ERRORS[res]);
+ return -1;
+ }
+ return 0;
+}
+
int FATFileSystem::format() {
FFSDEBUG("format()\n");
FRESULT res = f_mkfs(_fsid, 0, 512); // Logical drive number, Partitioning rule, Allocation unit size (bytes per cluster)
}
DirHandle *FATFileSystem::opendir(const char *name) {
+ char n[64];
+ sprintf(n, "%d:/%s", _fsid, name);
DIR_t dir;
- FRESULT res = f_opendir(&dir, name);
+ FRESULT res = f_opendir(&dir, n);
if(res != 0) {
return NULL;
}