小弟最近在做一个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]