android sdcard 创建文件总是失败!

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

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

java.io.IOException: invalid argument

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

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

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

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

根本原因是你的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]