michaeljacksonbill 2011-10-31 23:23
浏览 457
已采纳

android sdcard 创建文件总是失败!

小弟最近在做一个MP3播放器当作练习,可是到在SDCard创建文件时老是报错,弄了好几天都解决不了。麻烦各位指点迷津,非常感谢。

每当执行到file.createNewFile()就报错,报错信息是

java.io.IOException: invalid argument

目录能够成功创建,就文件不行。

目录路径:/mnt/sdcard/mp3/

文件路径:/mnt/sdcard/mp3/heart.mp3

[b]注:sdcard文件操作权限已添加[/b]

  • 写回答

1条回答 默认 最新

  • iteye_3032 2011-11-01 18:12
    关注

    根本原因是你的mp3那个目录不存在,也就是说你要创建heart.mp3这个文件,mp3这个目录必须存在,另外创建目录和创建文件不一样的,创建目录file.mkdir(),创建文件才是file.createNewFile();建议楼主多看看文件操作的基础,系统的看一下。附上代码,已经测试通过
    [code="java"]package com.android.file;

    import java.io.File;
    import java.io.IOException;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.Toast;

    public class AndroidtestActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

        Button btn = new Button(this);
        btn.setText("点击");
    
        setContentView(btn);
    
    
        btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                File directory = new File("/mnt/sdcard/mp3/");
    
                File file = new File("/mnt/sdcard/mp3/hear.mp3");
    
                if(!directory.exists()){
                    directory.mkdir();//没有目录先创建目录
                }
    
                try {
                    if(file.createNewFile()){
                        Toast.makeText(AndroidtestActivity.this, "创建文件成功", Toast.LENGTH_SHORT).show();
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });
    }
    

    }[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器