在我的 Android 原生 Java 项目中,我有一个类,我想在其中显示这些文件夹内所有 SD 卡目录和文件名的日志。
代码如下:
public class LogFileListActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_log_file_list);
// Get the root directory of the SD card
File rootDirectory = Environment.getExternalStorageDirectory();
// Log all files in the root directory
logFiles(rootDirectory);
// Log files in the "Podcasts" folder
logFilesInPodcasts();
}
private void logFiles(File directory) {
if (directory.exists() && directory.isDirectory()) {
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
Log.e("##FILE_INFO", "File Name: " + file.getName() + ", File Path: " + file.getAbsolutePath());
}
}
}
}
private void logFilesInPodcasts() {
// Get the "Podcasts" folder
File podcastsFolder = new File(Environment.getExternalStorageDirectory(), "Download");
// Log files in the "Podcasts" folder
logFiles(podcastsFolder);
}
}
现在的问题是:
不是显示SD卡的目录,而是显示sdk_gphone64_x86_64下的文件夹。 另一个问题 - 它正在记录到子目录,但不显示其下的文件名列表。所以,我需要一个解决方案来获取每个目录下的所有文件名。
我想要一个可以在设备的任何目录中查看所有文件列表的解决方案。我怎样才能做到这一点?
这可能对您有帮助:
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import androidx.appcompat.app.AppCompatActivity;
import java.io.File;
public class LogFileListActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_log_file_list);
File rootDirectory = Environment.getExternalStorageDirectory();
logFiles(rootDirectory);
previously)
logFilesInDownload();
}
private void logFiles(File directory) {
if (directory.exists() && directory.isDirectory()) {
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
Log.e("##FILE_INFO", "Directory Name: " + file.getName() + ", Directory Path: " + file.getAbsolutePath());
logFiles(file);
} else {
Log.e("##FILE_INFO", "File Name: " + file.getName() + ", File Path: " + file.getAbsolutePath());
}
}
}
}
}
private void logFilesInDownload() {
File downloadFolder = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
logFiles(downloadFolder);
} }