为什么无法获取目录中的文件列表?
Why cannot get list of files in my directory?
我正在处理 Android 个新项目。
这是我的代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (isExternalStorageReadable()) {
File meetings = getDocumentsStorageDir("Meetings");
if (meetings != null && meetings.exists()) {
if (meetings.isDirectory()) {
String[] list = meetings.list();
}
}
}
}
public boolean isExternalStorageReadable() {
String state = Environment.getExternalStorageState();
return Environment.MEDIA_MOUNTED.equals(state) ||
Environment.MEDIA_MOUNTED_READ_ONLY.equals(state);
}
public File getDocumentsStorageDir(String albumName) {
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOCUMENTS), albumName);
if (!file.mkdirs()) {
Log.e("TAG", "Directory not created");
}
return file;
}
@Override
protected void onResume() {
super.onResume();
}
}
我的meetings
对象不是null
和exists
和isDirectory
。但是我无法获取此目录中的文件列表。
我的 list
对象为空
我设置了以下权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
如果 targetSdkVersion
为 23 或更高,您需要 handle runtime permissions 以获得 dangerous
权限,例如 READ_EXTERNAL_STORAGE
。仅有 <uses-permission>
元素是不够的。
我正在处理 Android 个新项目。
这是我的代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (isExternalStorageReadable()) {
File meetings = getDocumentsStorageDir("Meetings");
if (meetings != null && meetings.exists()) {
if (meetings.isDirectory()) {
String[] list = meetings.list();
}
}
}
}
public boolean isExternalStorageReadable() {
String state = Environment.getExternalStorageState();
return Environment.MEDIA_MOUNTED.equals(state) ||
Environment.MEDIA_MOUNTED_READ_ONLY.equals(state);
}
public File getDocumentsStorageDir(String albumName) {
File file = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DOCUMENTS), albumName);
if (!file.mkdirs()) {
Log.e("TAG", "Directory not created");
}
return file;
}
@Override
protected void onResume() {
super.onResume();
}
}
我的meetings
对象不是null
和exists
和isDirectory
。但是我无法获取此目录中的文件列表。
我的 list
对象为空
我设置了以下权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
如果 targetSdkVersion
为 23 或更高,您需要 handle runtime permissions 以获得 dangerous
权限,例如 READ_EXTERNAL_STORAGE
。仅有 <uses-permission>
元素是不够的。