无法在Android外部存储器中创建文件

时间:2013-09-02 11:13:38

标签: android file

我写了这个..

String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {

        file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), myFileName);

        if(file.exists()) {
            createDelete.setText("Delete file");
            Toast.makeText(SaveToFile.this, myFileName+" auto-created",Toast.LENGTH_LONG).show();
        }
        else if(!file.exists()) 
            Toast.makeText(SaveToFile.this, myFileName+" auto-creation failed",Toast.LENGTH_LONG).show();
    }

当我运行它时,它会使失败的吐司。我无法在目录中找到该文件(无论是模拟器还是我的手机)。

在清单中添加Permision,版本为8.模拟器具有512 MB外部存储器。

3 个答案:

答案 0 :(得分:0)

试试这个..

if (!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
    //handle case of no SDCARD present
} else {
    File file = new File(Environment.getExternalStorageDirectory()
         +File.separator
         +"myDirectory" //folder name
         +File.separator
         +"myFile.example"); //file name
    file.mkdirs();
}

并在你的清单中......

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

答案 1 :(得分:0)

如果要创建文件,则必须调用mkdir

File file = new File(Environment..getExternalStorageDirectory(), myFileName);
// To create the file
file.mkdir();

由于mkdir是一个布尔值,你也可以这样做

if (file.mkdir()) {
    Toast.makeText(SaveToFile.this, myFileName+" auto-created",Toast.LENGTH_LONG).show();
} else {
    Toast.makeText(SaveToFile.this, myFileName+" auto-creation failed",Toast.LENGTH_LONG).show();
}

如果你有一些子目录,使用 mkdirs(),它将创建缺少的子目录

http://developer.android.com/reference/java/io/File.html#mkdir%28%29

答案 2 :(得分:-1)

这样做

String state = Environment.getExternalStorageState();
    if (Environment.MEDIA_MOUNTED.equals(state)) {
        // Update HEre
        File file = new File(Environment.getExternalStorageDirectory() + "/" + myFileName);

        if(file.exists()) {
            createDelete.setText("Delete file");
            Toast.makeText(SaveToFile.this, myFileName+" auto-created",Toast.LENGTH_LONG).show();
        }else{
            file.createNewFile(); //UPDATE HERE
        }
        else if(!file.exists()) 
            Toast.makeText(SaveToFile.this, myFileName+" auto-creation failed",Toast.LENGTH_LONG).show();
    }