gpt4 book ai didi

android - 从 SD 卡中删除非空文件夹

转载 作者:行者123 更新时间:2023-11-29 00:46:47 27 4
gpt4 key购买 nike

我试图让我的应用程序在启动时删除 sdcard 上的一个文件夹(带有子文件夹),但我不明白如何设置要删除的路径。

我创建了一个简单的 Activity 来删除这个文件夹,如下所示:

package org.android.test;    
import java.io.File;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class DelSD extends Activity {

File dir = new File(android.os.Environment
.getExternalStorageDirectory().getPath(),
"/TEST");

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

void DeleteRecursive(File dir)
{
Log.d("DeleteRecursive", "DELETEPREVIOUS TOP" + dir.getPath());
if (dir.isDirectory())
{
String[] children = dir.list();
for (int i = 0; i < children.length; i++)
{
File temp = new File(dir, children[i]);
if(temp.isDirectory())
{
Log.d("DeleteRecursive", "Recursive Call" + temp.getPath());
DeleteRecursive(temp);
}
else
{
Log.d("DeleteRecursive", "Delete File" + temp.getPath());
boolean b = temp.delete();
if(b == false)
{
Log.d("DeleteRecursive", "DELETE FAIL");
}
}
}
dir.delete();
}
}
}

并添加到我的 list 中:

uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"

但是还是不行。我在 SD 卡上的 TEST 文件夹仍然存在。我在模拟器和我的设备 2.2 上测试了这个 Activity 。

我不明白我应该如何设置要删除的路径:

File dir = new File(android.os.Environment
.getExternalStorageDirectory().getPath(),
"/TEST");

因为如果我将“dir”更改为其他内容,“void DeleteRecursive(File dir)”不会提示“dir”未设置!所以这根本不起作用。有什么建议吗?

最佳答案

import java.io.File;

class DeleteDir {
public static void main(String args[]) {
deleteDirectory(new File(args[0]));
}

static public boolean deleteDirectory(File path) {
if( path.exists() ) {
File[] files = path.listFiles();
for(int i=0; i<files.length; i++) {
if(files[i].isDirectory()) {
deleteDirectory(files[i]);
}
else {
files[i].delete();
}
}
}
return( path.delete() );
}
}

关于android - 从 SD 卡中删除非空文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5919603/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com