无法删除Android中从计算机传输的文件

时间:2013-05-18 15:44:52

标签: android file-io

我正在制作一个视频下载应用,我在保存和删除应用下载的文件到外部存储空间时没有任何问题,但是应用程序无法删除从我的计算机传输的任何文件。

这是一个真正的问题,因为它是我想要的关键功能之一。这是我正在使用的代码:

public boolean deleteDataFromStorage(Data toDelete) {

    //The file object soon to be deleted
    File f = null;

    Log.e(TAG, "Deleting " + toDelete.fileName);

    // Delete file from storage
    try {

        // Get file to delete
        f = new File(Environment.getExternalStorageDirectory().getCanonicalPath() + DIRECTORY + toDelete.fileName);

    } catch (IOException e) {

        Log.e(TAG, e.toString());

        // Print to stack trace
        e.printStackTrace();
    }

    // Delete file
    if(f.delete()) {
        return true;
    } else {

        Log.e(TAG, "Failed to delete " + toDelete.fileName);
        return false;
    }
}

由于f.delete()函数没有抛出任何异常,我不知道问题是什么。我唯一能想到的是该应用程序没有删除在Windows中创建的文件的权限,但我已经从应用程序商店下载了删除传输文件没有问题的应用程序。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

根据您的评论,由于f.isFile()f.exists()返回false,因此您的f不是文件,换句话说,您的路径错误。

打印到日志f.getAbsolutePath(),检查它是什么,然后它应该很容易修复。