【懒人精灵】go语言删除文件或者目录的几种方法

删除文件或空目录

Go 的 os.Remove() 函数可以删除文件和空目录。但是,它不能删除非空目录,如果尝试删除非空目录会返回错误。


// 删除文件或空目录
// path: 要删除的文件或目录的完整路径
// 返回: 删除是否成功 (true: 成功, false: 失败)
func DeleteFile(path string) bool {
    err := os.Remove(path)
    if err != nil {
        bridge.PrintLog(fmt.Sprintf("Error: 删除文件 %s 失败: %v", path, err))
        return false
    }
    return true
}

删除指定路径的文件或目录

使用 os.RemoveAll() 递归删除整个目录树


// 函数用于删除指定路径的文件或目录(空目录和非空目录)
// 参数:
//   path: 要删除的文件或目录的路径
// 返回值:
//   bool: 删除成功返回 true,失败返回 false
func DeleteFile(path string) bool {
    // 首先尝试直接删除
    err := os.Remove(path)
    if err == nil {
        return true
    }

    // 如果是目录,尝试递归删除
    if os.IsNotExist(err) {
        bridge.PrintLog(fmt.Sprintf("Error: 路径 %s 不存在", path))
        return false
    }

    // 检查是否为目录
    info, err := os.Stat(path)
    if err != nil {
        bridge.PrintLog(fmt.Sprintf("Error: 获取路径 %s 信息失败: %v", path, err))
        return false
    }

    if info.IsDir() {
        err = os.RemoveAll(path)
        if err != nil {
            bridge.PrintLog(fmt.Sprintf("Error: 删除目录 %s 失败: %v", path, err))
            return false
        }
        return true
    }

    bridge.PrintLog(fmt.Sprintf("Error: 删除文件 %s 失败: %v", path, err))
    return false
}

清空目录

删除目录下的所有文件和子目录,但保留目录本身。

// 清空指定目录下的所有内容(包括文件和子目录),但保留目录本身
// 参数:
//   dirPath: 要清空的目录路径
// 返回值:
//   bool: true表示清空成功,false表示清空失败
func ClearDirectory(dirPath string) bool {
    // 读取目录内容
    entries, err := os.ReadDir(dirPath)
    if err != nil {
        bridge.PrintLog(fmt.Sprintf("Error: 读取目录 %s 失败: %v", dirPath, err))
        return false
    }

    // 遍历并删除每个条目
    for _, entry := range entries {
        fullPath := dirPath + string(os.PathSeparator) + entry.Name()

        var err error
        if entry.IsDir() {
            // 如果是目录,递归删除
            err = os.RemoveAll(fullPath)
        } else {
            // 如果是文件,直接删除
            err = os.Remove(fullPath)
        }

        if err != nil {
            bridge.PrintLog(fmt.Sprintf("Error: 删除 %s 失败: %v", fullPath, err))
            return false
        }
    }

    return true
}

lua清空目录

下面是懒人精灵清空目录的方法

-- 清空目录内的全部文件(依赖存储权限,无权限会报错Permission denied)
    for file in lfs.dir(savepath) do
        if file ~= '.' and file ~= '..' then
            print('删除文件 ' .. savepath .. file)
            delfile(savepath .. file)
        end
    end
1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520飞云脚本圈
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » 【懒人精灵】go语言删除文件或者目录的几种方法

企业级大数据智能营销管理系统

源码转让