michaeljacksonbill
2011-10-31 23:23
浏览 378

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]

    点赞 打赏 评论

相关推荐 更多相似问题