如何以编程方式从 Android 中的 USB 大容量存储中删除 LOST.DIR 文件夹

How to remove LOST.DIR folder from USB Mass Storage in Android programmatically

我将文件从Android 内部存储复制到USB 驱动器,文件夹LOST.DIR 总是由系统创建。 如何以编程方式删除此文件夹

我使用库 libaums 来处理与 USB 的通信 我试图在复制后删除此文件夹,但 USB 出现错误

    private fun exportOnlyFilesToUsb(fileSystem: FileSystem, file: File) {
        val root = fileSystem.rootDirectory
        if (!file.isDirectory) {
            root.search(file.name)?.delete()
            val targetFile = root.createFile(file.name)
            copyFile(file, targetFile)
            return
        }
        file.listFiles()?.forEach {
            exportOnlyFilesToUsb(fileSystem, it)
        }
    }

    private fun copyFile(file: File, usbFile: UsbFile) {
        if (file.isDirectory || usbFile.isDirectory) return
        FileInputStream(file).use { input ->
            UsbFileOutputStream(usbFile).use { output ->
                input.copyTo(output)
            }
        }
    }

// Then I delete 
root.search(LOST_DIR)?.delete()

LOST.DIR是Androidphone在SD卡上创建的一个文件夹,用来找回不小心删除的照片、视频等文件。如果你是个聪明人phone 用户,您应该已经看到 LOST.DIR 个文件夹位于您的外部 SD 卡上。

Lost.DIR 文件夹基本上可以帮助您恢复由于各种原因丢失的文件,例如应用程序崩溃、USB 驱动器或 SD 卡弹出不当/读取/写入过程中弹出 SD 卡,Android 突然冻结或意外关闭,在 SD 卡上下载文件时中断等

有些用户可能会认为删除Lost.DIR文件夹是病毒文件夹,这是完全错误的。您可能已经注意到,一旦删除 Lost.DIR 文件夹,它会在您启动 phone 后自动重新创建,这是因为 LOST.DIR 是 Android 系统文件夹。

所以不要删除这个。事实上,你不能那样做。

首先检查您是否具有 File.canWrite() 的写入权限。

我认为自 Android KitKat 以来您没有对可移动媒体的写入权限。

您需要 SAF 并让用户 select 目录 ACTION_OPEN_DOCUMENT_TREE

是的,这很麻烦,因为该介质将用于有时不喜欢该目录的其他设备。

经常创建的 Android 目录也是如此。

是的,全部删除。没人要。