1

我将文件从 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()
4

2 回答 2

1

LOST.DIR 是 Android 手机在 SD 卡上创建的文件夹,用于找回意外删除的照片、视频等文件。如果您是智能手机用户,您可能已经看到 LOST.DIR 文件夹位于外部 SD 卡上卡片。

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

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

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

于 2022-02-10T06:41:29.240 回答
1

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

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

您将需要 SAF 并让用户选择带有ACTION_OPEN_DOCUMENT_TREE.

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

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

是的,全部删除。没有人要求它。

于 2022-02-10T15:16:23.963 回答