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]

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

报告相同问题?

悬赏问题

  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R