杰理之删除文件夹【篇】

/* --------------------------------------------------------------------------*/
/**

  • @brief 文件删除统一处理

  • @param path 扫描路径名

  • @param param 配置参数

  • @param dir_flag 是否删除文件夹标志

  • @note 加速处理:(删除文件的时候使用)从前往后依次删除. 文件夹必须从后往前删。

  • @return 0成功, 其他失败
    /
    /
    ----------------------------------------------------------------------------*/
    int file_manager_delete_deal(char *path, char *param, u8 dir_flag)
    {
    u16 folder_total_file = 0;
    struct vfscan *fsn = NULL;
    FILE *d_f = NULL;

    fsn = fscan(path, param, 9);
    if (fsn == NULL) {
    r_printf(“>>>[test]:err!!! fsacn fsn fail\n”);
    return 1;
    }
    folder_total_file = fsn->file_number;
    y_printf(“>>>[test]:total = %d\n”, folder_total_file);
    for (int i = folder_total_file; i >= 1; i–) {
    if (!dir_flag) {
    d_f = fselect(fsn, FSEL_BY_NUMBER, folder_total_file - i + 1); //加速处理,不用找到最后一个文件。
    } else {
    d_f = fselect(fsn, FSEL_BY_NUMBER, i);
    }
    if (d_f == NULL) {
    r_printf(“>>>[test]:err!! select file err\n”);
    return 1;
    }
    putchar(‘D’);
    int d_err = fdelete(d_f);
    if (d_err) {
    r_printf(“>>>[test]:err!! delete file err\n”);
    return 1;
    }
    d_f = NULL;
    }
    return 0;
    }

/----------------------------------------------------------------------------/
/** @brief:文件夹删除处理
@param:dev_logo :设备logo folder:文件夹路径(短名) folder_len:文件夹路径长度
@return:
@author:phewlee
@note:
@date: 2021-05-21,10:16
/
/
----------------------------------------------------------------------------*/
int file_manager_delete_dir(char *dev_logo, char *folder, u16 folder_len)
{
int err = 0;
struct __dev *dev;
char path[128] = {0};

static const u8 delete_file_param[] = "-t"
                                      "ALL"
                                      " -sn -r";

static const u8 delete_folder_param[] = "-t"
                                        "ALL"
                                        " -sn -d -r";

dev = dev_manager_find_spec(dev_logo, 0);
if (dev == NULL) {
    r_printf(">>>[test]:errr!!!!!!!!! not find dev\n");
    return 1;
}
char *root_path = dev_manager_get_root_path(dev);
memcpy(path, root_path, strlen(root_path));
memcpy(path + strlen(root_path), folder, folder_len);
r_printf(">>>[test]:path = %s\n", path);
err = file_manager_delete_deal(path, (char *)delete_file_param, 0);
if (err) {
    r_printf(">>>[test]:errr!!!!!!!!! delete file deal fail\n");
    return 1;
}
err = file_manager_delete_deal(path, (char *)delete_folder_param, 1);
if (err) {
    r_printf(">>>[test]:errr!!!!!!!!! delete folder  deal fail\n");
    return 1;
}
FILE *folder_f = fopen(path, "r");
if (folder_f == NULL) {
    r_printf(">>>[test]:err open folder\n");
    return 1;
}
err = fdelete(folder_f);
return err;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦之想,执之行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值