clcurie_11 2013-03-14 17:33 采纳率: 6.7%
浏览 3216
已采纳

不能把一个文件从原始文件夹移动到SD卡

我使用下面的代码把audio 文件从res/raw文件夹中移动到 SD card,当我执行这段代码时,文件没有移动。哪一行出错呢?
MoveAudio.java

public class MoveAudioextends Activity {

    /** Called when the activity is first created. */

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button a = (Button) findViewById(R.id.Button01);

        a.setOnClickListener(new OnClickListener() {

            public void onClick(View v) {
                byte[] buffer = null;
                InputStream fIn = getBaseContext().getResources()
                        .openRawResource(R.raw.song);
                int size = 0;
                System.out.println("<<<<<<<SIZE>>>>>>>>>>>>>>>>>>>>" + fIn);
                try {
                    size = fIn.available();
                    System.out
                            .println("<<<<<<<SIZE>>>>>>>>>>>>>>>>>>>>" + size);
                    buffer = new byte[size];
                    fIn.read(buffer);
                    fIn.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block

                }
                String path = "/sdcard/media/audio/ringtones/";
                String filename = "examplefile" + ".ogg";

                boolean exists = (new File(path)).exists();
                if (!exists) {
                    System.out
                            .println("<<<<<<<FALSE SO INSIDE THE CONDITION>>>>>>>>>>>>>>>>>>>>");
                    new File(path).mkdirs();
                }

                FileOutputStream save;
                try {
                    save = new FileOutputStream(path + filename);
                    System.out
                            .println("<<<<<<<SAVE>>>>>>>>>>>>>>>>>>>>" + save);
                    save.write(buffer);
                    save.flush();
                    save.close();
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block

                } catch (IOException e) {
                    // TODO Auto-generated catch block

                }
                sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,
                        Uri.parse("file://" + path + filename)));

                File k = new File(path, filename);
                System.out.println("<<<<<<<SAVE>>>>>>>>>>>>>>>>>>>>" + k);
            }
        });

    }

}

在xml文件中有 sing按钮,当我点击按钮时,文件才会移动。代码执行没有问题,但是文件就是移动不了。

展开全部

  • 写回答

4条回答 默认 最新

  • Sassoon 2013-03-15 01:28
    关注
    uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" 
    uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 VAE代码如何画混淆矩阵
  • ¥15 求遗传算法GAMS代码
  • ¥15 雄安新区高光谱数据集的下载网址打不开
  • ¥66 android运行时native和graphics内存详细信息获取
  • ¥100 求一个c#通过CH341读取数据的Demo,能够读取指定地址值的功能
  • ¥15 rk3566 Android11 USB摄像头 微信
  • ¥15 torch框架下的强化学习DQN训练奖励值浮动过低,希望指导如何调整
  • ¥35 西门子博图v16安装密钥提示CryptAcquireContext MS_DEF_PROV Error of containger opening
  • ¥15 mes系统扫码追溯功能
  • ¥40 selenium访问信用中国