让java打开一个然后附加一个文件

时间:2012-06-24 05:31:03

标签: java

我一直在尝试尽可能多地阅读stackoverflow,但我需要打开一个outlook离线模板(.oft)文件。然后附加一个文件。我将把命令放到java应用程序中。

我会使用命令行开关,但它会使用附件创建一条新消息并打开oft文件,而不是将其附加到.oft。

"C:\Program Files (x86)\Microsoft Office\Office14\Outlook.exe" /f "C:\RSASoftToken\android.msg" /a "C:\RSASoftToken\android\WMH7.sdtid"

如果有办法让命令行工作,那将是最简单的。如果不是我还能在java中做什么呢?

我需要将它添加到此代码中

    //the New File Name
    String newFileName = Prefix + fileName.substring(0,4) + Suffix + fileExtension;
    String tentativeName = "new Filename will be ->"+newFileName+"\n";
    System.out.println(tentativeName);
    if(cbxAndroid.isSelected() == true ){
        try {   Runtime rt = Runtime.getRuntime();                               
                Process pr = rt.exec("cmd /c \\RSASoftToken\\TokenConverter.exe \\RSASoftToken\\android\\"+newFileName+" -android -o \\RSASoftToken\\android\\"+newFileName.substring(0,4)+".txt");
                BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));                  
                String line=null;                 
        while((line=input.readLine()) != null) {                     
            System.out.println(line);                 }                  
        int exitVal = pr.waitFor();                 
        System.out.println("Exited with error code "+exitVal);              
        } catch(Exception e) {                 
            System.out.println(e.toString());                 
            e.printStackTrace();             
            }         

        }

1 个答案:

答案 0 :(得分:0)

以下是从Java执行该命令的方法:

    Process p = Runtime.getRuntime().exec(new String[]{
        "C:\Program Files (x86)\Microsoft Office\Office14\Outlook.exe",
        "/f",
        "C:\mail\android.oft",
        "/a",
        "C:\android\file.txt");

然后,您可以调用getXxxStream()对象上的Process方法来获取用于写入外部进程标准输入的流,并从其标准输出和标准错误中读取。

但是,我不明白你在这里真正想做什么,或者运行这个命令是否会让你实现它。