Я новичок в Android Studio
Я также могу создать файл из Память телефона , но мне нужно Как создать файл с SD-карты ,я использую виртуальное устройство или i9000S .
на самом деле я использую:
Android Jellybean
Уровень API: 18
Версия Android: 4.3
Если я использую это File myFile = new File("/sdcard/sample.txt");
, это работает.
когда я использую это File myFile = new File("/sdcard1/sample.txt");
, это не работает.это дает мне ошибку вроде Error: open failed: ENOENT (No such file or directory).
MainActivity.java:
final String NEW_FOLDER_NAME = "TestFolder";
testPath(new File(Environment.getExternalStorageDirectory(), NEW_FOLDER_NAME));
testPath(new File("/storage/emulated/0/", NEW_FOLDER_NAME));
testPath(new File("/storage/emulated/1/", NEW_FOLDER_NAME));
testPath(new File("/storage/sdcard0/Download/", NEW_FOLDER_NAME));
testPath(new File("/storage/sdcard1", NEW_FOLDER_NAME));
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
String E1 = System.getenv("EXTERNAL_STORAGE");
File F1 = new File(E1, NEW_FOLDER_NAME);
String E2 = System.getenv("SECONDARY_STORAGE");
File F2 = new File(E2, NEW_FOLDER_NAME);
testPath(new File("/storage/sdcard1", NEW_FOLDER_NAME));
testPath(F1);
testPath(F2);
File myFile = new File("/sdcard1/sample.txt");
myFile.createNewFile();
FileOutputStream fOut = new FileOutputStream(myFile);
OutputStreamWriter myOutWriter =
new OutputStreamWriter(fOut);
myOutWriter.append(e1.getText());
myOutWriter.close();
fOut.close();
Toast.makeText(Main1Activity.this, "Save to" + getFilesDir() + ">" + NEW_FOLDER_NAME, Toast.LENGTH_LONG).show();
} catch (Exception e) {
Toast.makeText(getBaseContext(), e.getMessage(),
Toast.LENGTH_SHORT).show();
}
}
});
private void testPath(File path) {
String TAG = "Debug.MainActivity.java";
String FOLDER_CREATION_SUCCESS = " mkdir() success: ";
boolean success;
if (path.exists()) {
// already created
success = true;
} else {
success = path.mkdir();
}
Log.d(TAG, path.getAbsolutePath() + FOLDER_CREATION_SUCCESS + success);
path.delete();
}
edit : я ужедобавить из файла манифеста:
<uses-permission android:name="android.permission.STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />