⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mkisofscommand.java

📁 将用户指定的数据保存成一个iso文件
💻 JAVA
字号:
package jcdwriter.model;import java.util.Vector;import java.io.*;public class MKISOFSCommand implements java.io.Serializable {    private boolean rockRidge = true;    private boolean ananymouseRockRidge = false;    private boolean joliet = true;    private boolean allow32CharFileNames = true;    private boolean followSymLinks = true;    private boolean generateTransTBLFiles = false;    private boolean omitTrailingPeriods = false;    private boolean noDeepDirRelocation = true;    private boolean filesCanBeginWithPeriod = false;    private String  excludeFilePatterns = "*~"  ;    private boolean excludeBackupFiles = true;    private String      trueAsString = "true";    private String      falseAsString = "false";        private String      commandLocation = "/usr/bin/mkisofs";        public String mkisofsExecutable() {        return (commandLocation);    }        public void mkisofsExecutable(String execString) {        commandLocation = execString;    }        public Object[] arguments() {        Vector args = new Vector();        args.add("-graft-points");        if (rockRidge) args.add("-R");        if (ananymouseRockRidge) args.add("-r");        if (joliet) args.add("-J");        if (followSymLinks) args.add("-f");        if (allow32CharFileNames) args.add("-l");        if (generateTransTBLFiles) args.add("-T");        if (omitTrailingPeriods) args.add("-d");        if (noDeepDirRelocation) args.add("-D");        if (filesCanBeginWithPeriod) args.add("-L");        if (excludeBackupFiles) args.add("-no-bak");                        if (excludeFilePatterns != null) {/* Should parse the patterns and add appropriate -m options */        };                return args.toArray();    }            public String toString() {        StringBuffer sb = new StringBuffer();        Object[] args = arguments();        for(int i=0; i < args.length; i++) {            sb.append((String)args[i]);            sb.append(" ");        }        return sb.toString();    }        public MKISOFSCommand copyFrom(MKISOFSCommand config) {        rockRidge = config.rockRidge;        ananymouseRockRidge = config.ananymouseRockRidge;        joliet = config.joliet;        allow32CharFileNames = config.allow32CharFileNames;        followSymLinks = config.followSymLinks;        generateTransTBLFiles = config.generateTransTBLFiles;        omitTrailingPeriods = config.omitTrailingPeriods;        noDeepDirRelocation = config.noDeepDirRelocation;        filesCanBeginWithPeriod = config.filesCanBeginWithPeriod;        excludeFilePatterns = config.excludeFilePatterns;        excludeBackupFiles = config.excludeBackupFiles;        commandLocation = config.commandLocation;        return this;    }        public void setRockRidge(boolean flag) {        rockRidge = flag;    }        public void setAnanymouseRockRidge(boolean flag) {        ananymouseRockRidge = flag;    }        public void setJoliet(boolean flag) {        joliet = flag;    }        public void setAllow32CharFileNames(boolean flag) {        allow32CharFileNames = flag;    }        public void setFollowSymLinks(boolean flag) {        followSymLinks = flag;    }        public void setGenerateTransTBLFiles(boolean flag) {        generateTransTBLFiles = flag;    }        public void setOmitTrailingPeriods(boolean flag) {        omitTrailingPeriods =  flag;    }        public void setNoDeepDirRelocation(boolean flag) {        noDeepDirRelocation = flag;    }        public void setFilesCanBeginWithPeriod(boolean flag) {        filesCanBeginWithPeriod = flag;    }        public void setFilePatternsToExclude(String s) {        excludeFilePatterns = s;    }        public void setExcludeBackupFiles(boolean flag) {        excludeBackupFiles = flag;    }        public boolean getRockRidge() {        return rockRidge;    }        public boolean getAnanymouseRockRidge() {        return ananymouseRockRidge;    }        public boolean getJoliet() {        return joliet;    }        public boolean getAllow32CharFileNames() {        return allow32CharFileNames;    }        public boolean getFollowSymLinks() {        return followSymLinks;    }        public boolean getGenerateTransTBLFiles() {        return generateTransTBLFiles;    }        public boolean getOmitTrailingPeriods() {        return omitTrailingPeriods;    }        public boolean getNoDeepDirRelocation() {        return noDeepDirRelocation;    }        public boolean getFilesCanBeginWithPeriod() {        return filesCanBeginWithPeriod;    }        public String getFilePatternsToExclude() {        return excludeFilePatterns;    }        public boolean getExcludeBackupFiles() {        return excludeBackupFiles;    }        public String[] writeImageCommandUsing(String isoFileName, Vector pathMappings){        Vector cmdElements = new Vector();        Object optionsList[] = arguments();        cmdElements.add(commandLocation);        for (int i=0; i < optionsList.length; i++) {            cmdElements.add((String)optionsList[i]);        }        cmdElements.add("-o");        cmdElements.add(isoFileName);        java.util.Iterator graftPointsIterator = pathMappings.iterator();        while (graftPointsIterator.hasNext()){            cmdElements.add(graftPointsIterator.next().toString());        }        String cmdStr[] = new String[cmdElements.size()];        java.util.Iterator anIterator = cmdElements.iterator();        int i = 0;        while (anIterator.hasNext()){            cmdStr[i++] = (String)anIterator.next();//            System.out.println(cmdStr[i - 1]);        }        return cmdStr;    }    public String writeImageCommandStrUsing(String isoFileName, Vector pathMappings, Vector excludePathMappings){        StringBuffer cmdStr = new StringBuffer();        Object optionsList[] = arguments();        cmdStr.append(commandLocation);        cmdStr.append(' ');        for (int i=0; i < optionsList.length; i++) {            cmdStr.append((String)optionsList[i]);            cmdStr.append(' ');        }        if (isoFileName != null) {            cmdStr.append(" -o ");            cmdStr.append(isoFileName);        }        java.util.Iterator graftPointsIterator = excludePathMappings.iterator();        graftPointsIterator = pathMappings.iterator();        while (graftPointsIterator.hasNext()){            cmdStr.append(' ');            cmdStr.append(graftPointsIterator.next().toString());        }        System.out.println(cmdStr.toString());        return cmdStr.toString();    }     public void saveToFile(File file) {        try {            FileWriter writer = new FileWriter(file);            writer.write("<mkisofs_configuration>");            writer.write("\r\n\r\n");                        writer.write("#mkisofs specific settings\r\n");                        writer.write("rock_ridge=");            writer.write(booleanAsString(rockRidge));            writer.write("\r\n\r\n");                        writer.write("anon_rock_ridge=");            writer.write(booleanAsString(ananymouseRockRidge));            writer.write("\r\n\r\n");                        writer.write("joliet=");            writer.write(booleanAsString(joliet));            writer.write("\r\n\r\n");                        writer.write("allow_32char_filenames=");            writer.write(booleanAsString(allow32CharFileNames));            writer.write("\r\n\r\n");                        writer.write("follow_symbolic_links=");            writer.write(booleanAsString(followSymLinks));            writer.write("\r\n\r\n");                        writer.write("generate_transtbl_files=");            writer.write(booleanAsString(generateTransTBLFiles));            writer.write("\r\n\r\n");                        writer.write("omit_trailing_periods=");            writer.write(booleanAsString(omitTrailingPeriods));            writer.write("\r\n\r\n");                        writer.write("no_deep_dir_relocation=");            writer.write(booleanAsString(noDeepDirRelocation));            writer.write("\r\n\r\n");                        writer.write("files_can_begin_with_period=");            writer.write(String.valueOf(filesCanBeginWithPeriod));            writer.write("\r\n\r\n");                        writer.write("exclude_backup_files=");            writer.write(booleanAsString(excludeBackupFiles));            writer.write("\r\n\r\n");                        writer.write("command_location=");            writer.write(commandLocation);            writer.write("\r\n\r\n");                        writer.write("</mkisofs_configuration>");            writer.close();        }        catch(java.io.FileNotFoundException fnfe) {            System.out.println(fnfe);        }        catch(java.io.IOException ie) {            System.out.println(ie);        }            }        public void readFromFile(File file) {        try {            FileReader reader = new FileReader(file);            BufferedReader br = new BufferedReader(reader);            String line = "";                        while ((line = br.readLine()) != null) {//                System.out.println("Read: " + line);                if (line.indexOf("<cdrecord_configuration>") >= 0) {                }                else {                    if (line.indexOf("command_location") == 0) {                        commandLocation = line.substring(line.indexOf("=") + 1);                    }                    if (line.indexOf("rock_ridge") == 0) {                        rockRidge = stringAsBoolean(line.substring(line.indexOf("=") + 1));                    }                    if (line.indexOf("anon_rock_ridge") == 0) {                        ananymouseRockRidge = stringAsBoolean(line.substring(line.indexOf("=") + 1));                    }                    if (line.indexOf("joliet") == 0) {                        joliet = stringAsBoolean(line.substring(line.indexOf("=") + 1));                    }                    if (line.indexOf("allow_32char_filenames") == 0) {                        allow32CharFileNames =  stringAsBoolean(line.substring(line.indexOf("=") + 1));                    }                    if (line.indexOf("follow_symbolic_links") == 0) {                        followSymLinks = stringAsBoolean(line.substring(line.indexOf("=") + 1));                    }                    if (line.indexOf("generate_transtbl_files") == 0) {                        generateTransTBLFiles =  stringAsBoolean(line.substring(line.indexOf("=") + 1));                    }                    if (line.indexOf("omit_trailing_periods") == 0) {                        omitTrailingPeriods = stringAsBoolean(line.substring(line.indexOf("=") + 1));                    }                    if (line.indexOf("no_deep_dir_relocation") == 0) {                        noDeepDirRelocation =  stringAsBoolean(line.substring(line.indexOf("=") + 1));                    }                    if (line.indexOf("files_can_begin_with_period") == 0) {                        filesCanBeginWithPeriod = stringAsBoolean(line.substring(line.indexOf("=") + 1));                    }                    if (line.indexOf("exclude_backup_files") == 0) {                        excludeBackupFiles =  stringAsBoolean(line.substring(line.indexOf("=") + 1));                    }                }            }            br.close();            reader.close();        }        catch(java.io.FileNotFoundException fnfe) {            System.out.println(fnfe);        }        catch(java.io.IOException ie) {            System.out.println(ie);        }            }        private boolean stringAsBoolean(String s) {        return (s.equalsIgnoreCase(trueAsString));    }        private String booleanAsString(boolean b) {        if (b == true)            return trueAsString;        else            return falseAsString;    }   }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -