簡體   English   中英

將文件資產復制到SDCard活動(Android應用)需要提示

[英]Copy File Assets To SDCard Activity (Android app) need ideas

我需要將資產內的所有文件夾復制到SDCARD上的特定文件夾。 假設我們的目標文件夾“ RESULT_HERE”位於“ MAIN_FOLDER”文件夾下

我使用了這段代碼,但完全沒有結果。 無法復制文件,甚至無法創建文件夾。 我用了這段代碼

有任何想法嗎?

我修改了一個代碼,以復制具有Assets文件夾相同結構的所有文件夾和文件。 只需替換CopyFiles方法的代碼即可。

private void CopyFiles(String sdCardPath, String assetFilename){
    AssetManager assetManager = getAssets();

    try {
        String[] files = assetManager.list(assetFilename);

        //Try as file
        if(files.length == 0){
            InputStream in;
            OutputStream out;

            String fileName = assetFilename.substring(assetFilename.lastIndexOf(File.separator) + 1);

            File file = new File(sdCardPath + File.separator + assetFilename.substring(0, assetFilename.length() - fileName.length()));
            if(!file.exists())
                file.mkdir();

            in = assetManager.open(assetFilename);
            out = new FileOutputStream(file.getAbsolutePath() + File.separator + fileName);

            copyFile(in, out);

            in.close();
            out.flush();
            out.close();
        }
        //Try as folder
        else{
            for (String assetFile : files){
                String newAssetFilename = assetFilename.length() > 0
                                                    ? assetFilename + File.separator  +assetFile // Is on internal folder
                                                    : assetFile;                                // Is on root of asset folder

                CopyFiles(sdCardPath, newAssetFilename);
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

要調用此函數,您必須調用:

if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
        CopyFiles(Environment.getExternalStorageDirectory() + File.separator + INTERNAL_PATH, "");

其中INTERNAL_PATH是文件夾的相對路徑。 函數Environment.getExternalStorageState()用於確保存在SD卡。

另外,請記住,那么您必須在Manifest上聲明關注權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM