2 clcurie 11 clcurie_11 于 2013.03.15 09:33 提问

不能把一个文件从原始文件夹移动到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个回答

l445695623
l445695623   2013.03.15 17:28
已采纳
uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" 
uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
a220315410
a220315410   2013.03.15 11:19

就像楼上说的:

android.permission.WRITE_EXTERNAL_STORAGE
suannai0314
suannai0314 帮你编辑了下,详细的markdown使用见http://ask.csdn.net/pages/markdown
接近 5 年之前 回复
zyc13701469860
zyc13701469860   2013.03.15 09:43

加上权限再试试

iamkila
iamkila   2013.03.17 08:15

因为你文件没创建出来啊 最后面加上 k.createNewFile() 直接new只不过是放在内存中而已

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!