我认为这一定是设置问题,但我无法弄清楚。我要做的就是在Android手机sdcard上写入文件,并能够在一天结束时从手机中获取文件。
我正在尝试写入从文件浏览器创建的目录。我创建了目录FFT,并从文件浏览器中复制了一个文件。当我使用ES File Explorer查看目录时,可以在storage / emulated / 0 / FFT / Constants.java中看到目录和文件。我知道目录可以写入,只是不能从我的Android应用程序写入。
我尝试了很多事情,我不确定什么是真实的。
在我的AndroidManifold.xml中,我有一行
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我试图找出答案的代码:
boolean foo = isExternalStorageWritable();
if (! foo){
textView.setText("xNot Writeable");
}
else {
String fullPath = Environment.getExternalStorageDirectory().getAbsolutePath();
fullPath += "/FFT";
File dir = new File(fullPath);
// Make sure the directory exists
if (!dir.exists())
dir.mkdir();
long len = dir.length();
String filePath = fullPath + "/index.html";
File file = new File(filePath);
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file.getPath());
for (int i = 0; i < 10; i++){
fos.write(23); //"Anyone Listening: ");
}
} catch (Exception e) {
}
if (! file.canWrite()){
textView.setText("zNot Writeable" + Long.toString(len));
}
else {
}
使用,从某处复制
public boolean isExternalStorageWritable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
Foo是正确的,该设备似乎可写 该目录存在且未调用mkDir len是4096 fos =空 file.canWrite为假。