File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -74,10 +74,25 @@ STATIC mp_obj_t fat_vfs_listdir_func(size_t n_args, const mp_obj_t *args) {
7474}
7575STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN (fat_vfs_listdir_obj , 1 , 2 , fat_vfs_listdir_func );
7676
77+ STATIC mp_obj_t fat_vfs_remove (mp_obj_t vfs_in , mp_obj_t path_in ) {
78+ const char * path = mp_obj_str_get_str (path_in );
79+ // TODO check that path is actually a file before trying to unlink it
80+ FRESULT res = f_unlink (path );
81+ switch (res ) {
82+ case FR_OK :
83+ return mp_const_none ;
84+ default :
85+ // TODO: standard errno's
86+ nlr_raise (mp_obj_new_exception_msg_varg (& mp_type_OSError , "Error removing file '%s'" , path ));
87+ }
88+ }
89+ STATIC MP_DEFINE_CONST_FUN_OBJ_2 (fat_vfs_remove_obj , fat_vfs_remove );
90+
7791STATIC const mp_rom_map_elem_t fat_vfs_locals_dict_table [] = {
7892 { MP_ROM_QSTR (MP_QSTR_mkfs ), MP_ROM_PTR (& fat_vfs_mkfs_obj ) },
7993 { MP_ROM_QSTR (MP_QSTR_open ), MP_ROM_PTR (& fat_vfs_open_obj ) },
8094 { MP_ROM_QSTR (MP_QSTR_listdir ), MP_ROM_PTR (& fat_vfs_listdir_obj ) },
95+ { MP_ROM_QSTR (MP_QSTR_remove ), MP_ROM_PTR (& fat_vfs_remove_obj ) },
8196};
8297STATIC MP_DEFINE_CONST_DICT (fat_vfs_locals_dict , fat_vfs_locals_dict_table );
8398
You can’t perform that action at this time.
0 commit comments