Android Open Source - ZShaolin assetextract






From Project

Back to project page ZShaolin.

License

The source code is released under:

GNU General Public License

If you think the Android project ZShaolin listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.// w ww .j a v a 2  s  .  co m
 */

package org.dyne.zshaolin.startup.setup;
// import org.dyne.zshaolin.R;


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.logging.Level;
import java.util.logging.Logger;

import android.content.res.AssetManager;
import android.util.Log;

/**
 *
 * @author Spartacus Rex
 */
public class assetextract {

    AssetManager mAssets;

    public assetextract(AssetManager zAssets){
        mAssets = zAssets;
    }

    private static void log(String zLog){
        Log.v("ZShaolin","BinaryManager : "+zLog);
    }
    
    private void copyFile(InputStream in, OutputStream out) throws IOException {
        byte[] buffer = new byte[1024];
        int read;
        while((read = in.read(buffer)) != -1){
          out.write(buffer, 0, read);
        }
    }

    private void extractAsset(String zAssetFile, File zOuput) throws IOException {
        InputStream in  = mAssets.open(zAssetFile);
        OutputStream os = new FileOutputStream(zOuput);
        copyFile(in,os);
        in.close();
        os.close();
    }

    public static void deleteFolder(File zFile){
        if(zFile.isDirectory()){
            //Its a directory
            File[] files = zFile.listFiles();
            for(File ff : files){
                deleteFolder(ff);
            }
        }

        //Now delete
        zFile.delete();
    }

    public boolean isAssetDirectory(String zAssetPath) throws IOException{
        String[] files = mAssets.list(zAssetPath);
        if(files==null || files.length==0){
            return false;
        }
        return true;
    }

    private String getPathName(String zPath){
        int index = zPath.lastIndexOf("/");
        if(index==-1){
            return zPath;
        }
        return zPath.substring(index);
    }

    public void recurseExtractAssets(String zAssetPath, File zBaseDir){
        log("recurseExtractAssets "+zAssetPath+" "+zBaseDir);

        //Check that this folder exists
        File folder = new File(zBaseDir.getPath());
        if(!folder.exists()){
            folder.mkdirs();
        }

        //Get the Asset name..
        String asset = getPathName(zAssetPath);

        //Create a file handle
        File newfile = new File(zBaseDir, asset);

        //Now - what to do..
        try {
            //Is it a Dir
            if(isAssetDirectory(zAssetPath)){
                //Create a Directory..   
                newfile.mkdirs();

                //List the Asset files
                String[] files = mAssets.list(zAssetPath);
                for(String file : files){
                    String fpath = zAssetPath+"/"+file;
                    
                    //Recurse down through the tree..
                    recurseExtractAssets(fpath, newfile);
                }

            }else{
                String name = newfile.getName();
                if(name.endsWith(".mp3")){
                    //Big file - copy and remove .mp3 from filename
                    newfile = new File(zBaseDir, asset.substring(0, asset.length()-4));
                }

                //Now extract the file..
                extractAsset(zAssetPath, newfile);
            }
            
        } catch (IOException ex) {
            Logger.getLogger(assetextract.class.getName()).log(Level.SEVERE, null, zAssetPath+" "+ex);
        }
    }

}




Java Source Code List

com.spartacusrex.spartacuside.EmulatorView.java
com.spartacusrex.spartacuside.Exec.java
com.spartacusrex.spartacuside.TermDebug.java
com.spartacusrex.spartacuside.TermPreferences.java
com.spartacusrex.spartacuside.TermService.java
com.spartacusrex.spartacuside.TermViewFlipper.java
com.spartacusrex.spartacuside.Term.java
com.spartacusrex.spartacuside.WindowList.java
com.spartacusrex.spartacuside.keyboard.CandidateView.java
com.spartacusrex.spartacuside.keyboard.KeyboardPrefs.java
com.spartacusrex.spartacuside.keyboard.KeyboardSwitcher.java
com.spartacusrex.spartacuside.keyboard.LatinKeyboardView.java
com.spartacusrex.spartacuside.keyboard.LatinKeyboard.java
com.spartacusrex.spartacuside.keyboard.MyKeyboardView.java
com.spartacusrex.spartacuside.keyboard.TerminalKeyboard.java
com.spartacusrex.spartacuside.model.Screen.java
com.spartacusrex.spartacuside.model.TextRenderer.java
com.spartacusrex.spartacuside.model.UpdateCallback.java
com.spartacusrex.spartacuside.session.TermSession.java
com.spartacusrex.spartacuside.session.TerminalEmulator.java
com.spartacusrex.spartacuside.session.TranscriptScreen.java
com.spartacusrex.spartacuside.util.ByteQueue.java
com.spartacusrex.spartacuside.util.ServiceForegroundCompat.java
com.spartacusrex.spartacuside.util.TermSettings.java
com.spartacusrex.spartacuside.util.dialogpref.java
com.spartacusrex.spartacuside.util.hardkeymappings.java
com.spartacusrex.spartacuside.util.keydata.java
com.spartacusrex.spartacuside.web.sockethandler.java
com.spartacusrex.spartacuside.web.webserver.java
org.dyne.zshaolin.Start.java
org.dyne.zshaolin.startup.TerminalIDEPrefs.java
org.dyne.zshaolin.startup.setup.assetextract.java
org.dyne.zshaolin.startup.setup.filemanager.java
org.dyne.zshaolin.startup.installer.java
org.dyne.zshaolin.startup.introscreen.java