import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.OutputStream;
import javax.swing.JOptionPane;
import org.jdesktop.jdic.filetypes.Association;
import org.jdesktop.jdic.filetypes.AssociationService;
public class DateiAssoziation {
public static void txt(String[] args) {
AssociationService as = new AssociationService();
if (as.getFileExtensionAssociation ("txt") != null){ //schon registriert
}else if (as.getFileExtensionAssociation ("txt") == null){
try {
File startbat = new File ("editor/Editor.bat"); //Batchdatei
BufferedWriter bw = new BufferedWriter (new FileWriter (startbat));
File chosen = new File (System.getProperty("user.dir"));
bw.write("@echo off"); //Datei schreiben
bw.newLine();
bw.write(chosen.getAbsolutePath().substring(0, 2));
bw.newLine();
bw.write("cd " + chosen.getAbsolutePath());
bw.newLine();
String javahome = System.getProperty("java.home", "");
String filesep = File.separator;
bw.write ("START " + javahome + filesep + "bin" + filesep + "javaw.exe -jar Editor.jar " + ((args.length != 0 && args[0].equals("-debug")) ? "-debug" : "") + "%1");
bw.close(); //Batchdatei fertig
Association txt = new Association ();
txt.addFileExtension ("txt");
org.jdesktop.jdic.filetypes.Action txtAction = new org.jdesktop.jdic.filetypes.Action ("open", startbat.getAbsolutePath() + " \"%1\"", "Open Editor"); //eintrag zur Batchdatei
txt.addAction (txtAction);
InputStream is = ClassLoader.getSystemResourceAsStream("images/icon.ico"); //icon entpacken
OutputStream os = new FileOutputStream ("editor/txt.ico"); //falls man icon zuweisen will
byte[] buf = new byte[512];
int len;
while ((len = is.read(buf)) >= 0){
os.write(buf, 0, len);
}
is.close();
os.close(); //icon entpackt
txt.setIconFileName (new File ("editor/txt.ico").getAbsolutePath()); //icon setzen
as.registerSystemAssociation (txt); //fertigstellen
}catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
ex.printStackTrace();
}
}
}
}