繁体   English   中英

将文件写入外部存储

[英]Write file to external storage

我正在尝试将新的wave文件写入外部存储上的Ringtones文件夹。 但是很遗憾,没有创建文件。

我已按照android docs的操作方法进行操作,并按照建议的方式实施了它。

我还在清单中添加了适当的权限。 另外,我还检查了设备的外部存储设备是否可读/可写。

以下代码编写日志语句“未创建目录”。 同样,对流的任何后续调用也会导致nullPointer。

public WavFileOutStream(String fileName)
{

    // Get the directory for the user's public pictures directory. 
    File file = new File(Environment.getExternalStoragePublicDirectory(
             Environment.DIRECTORY_RINGTONES), fileName);
    if (!file.getParentFile().mkdirs()) {
         Log.e("trace", "Directory not created");
    }

    try {
        stream = new DataOutputStream(new FileOutputStream(file));

    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 

}

您误解了日志消息的含义及其原因。

记录File.mkdirs()返回:

  • 如果创建目录,则为true,

  • 如果失败或目录已经存在,则返回 false

由于铃声文件夹可能已经存在,因此您可能会遇到第二种情况。

如果您仍然有其他理由认为这不起作用,请将以下catch块产生的堆栈跟踪编辑到您的问题正文中。

我经常忘记自己。 确保您的应用清单中具有此权限:)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM