📄 mkisofscommand.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 + -