亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將文件從一個文件夾復制到另一個文件夾

將文件從一個文件夾復制到另一個文件夾

千巷貓影 2022-12-28 10:42:44
我試圖在 Android 路徑出現時復制該文件,但沒有成功,盡管它已經作為 AndroidManifest 上的權限存在,就好像該文件不存在或在那里不知道它一樣。這是一段代碼:public void onActivityResult(int requestCode, int resultCode, Intent data){    switch (requestCode) {        case FILE_SELECT_CODE:            if (resultCode == RESULT_OK) {                Uri uri = data.getData();                String origem = uri.getPath();                File src = new File(origem);                if(src.isFile()){                    Log.d(TAG,src.toString());                }                File root = Environment.getExternalStorageDirectory();                root = new File(root.toString(), "Kcollector/importa/import.csv");                try {                    copy(src,root,true);                } catch (IOException e) {                    e.printStackTrace();                }            }            break;    }    super.onActivityResult(requestCode, resultCode, data);}public static void copy(File origem, File destino, boolean overwrite) throws IOException{    Date date = new Date();    if (destino.exists() && !overwrite){        System.err.println(destino.getName()+" já existe, ignorando...");        return;    }    FileInputStream fisOrigem = new FileInputStream(origem);    FileOutputStream fisDestino = new FileOutputStream(destino);    FileChannel fcOrigem = fisOrigem.getChannel();    FileChannel fcDestino = fisDestino.getChannel();    fcOrigem.transferTo(0, fcOrigem.size(), fcDestino);    fisOrigem.close();    fisDestino.close();    Long time = new Date().getTime() - date.getTime();    System.out.println("Saiu copy"+time);}嘗試復制時返回的錯誤:W/System.err:java.io.FileNotFoundException:/external_storage/Kcollector/importa/kvendasajustado.csv(沒有這樣的文件或目錄) W/System.err:在 java.io.FileInputStream.open0(本機方法)
查看完整描述

1 回答

?
偶然的你

TA貢獻1841條經驗 獲得超3個贊

檢查運行時權限或使用第一個響應中指示的方法

public static void copy(File src, File dst) throws IOException {

    InputStream in = new FileInputStream(src);

    try {

        OutputStream out = new FileOutputStream(dst);

        try {

            // Transfer bytes from in to out

            byte[] buf = new byte[1024];

            int len;

            while ((len = in.read(buf)) > 0) {

                out.write(buf, 0, len);

            }

        } finally {

            out.close();

        }

    } finally {

        in.close();

    }

}

最后檢查 url 是否格式正確。否則你可以用斷點調試(搜索這些詞),并找到問題的確切來源


查看完整回答
反對 回復 2022-12-28
  • 1 回答
  • 0 關注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號