通过附加原始文件名保存文件

Posted

技术标签:

【中文标题】通过附加原始文件名保存文件【英文标题】:Save a file by appending the original file name 【发布时间】:2021-07-04 01:23:27 【问题描述】:

我正在使用使用 Java API 的 Star-CCM+ 运行 CFD 模拟。 Star-CCM+ 用 java 编写宏,但我根本不懂语言。我想在我的模拟中操作参数值,然后使用附加名称保存文件。例如,如果我的模拟名为“External Aero”,我希望模拟以“External Aero Heave”的名称保存文件。这样做的原因是多个人将使用此宏,我不希望每个人的文件都被覆盖。所以我希望宏附加基本文件的名称。

Star-CCM+编写的保存重命名文件的代码如下:

// Simcenter STAR-CCM+ macro: SaveOp.java
// Written by Simcenter STAR-CCM+ 15.06.008
package macro;

import java.util.*;

import star.common.*;
import star.base.neo.*;

public class SaveOp extends StarMacro 

  public void execute() 
    execute0();
  

  private void execute0() 

    Simulation simulation_0 = getActiveSimulation();

    simulation_0.saveState("Y:\\CFD Simulation\\Run\\GFR21_Thesis_Base_ExportToPPT_Heave.sim");
  

  private void execute1() 
  

我可以看到simulation_0 是活动模拟的名称。我尝试将 Simulation_0 添加到 saveState 命令中,如下所示:

    simulation_0.saveState("Y:\\CFD Simulation\\Run\\simulation_0_Heave.sim");

但这只是保存了一个名为“simulation_0_Heave.sim”的模拟,这不是我想要的。

对此的任何帮助将不胜感激。 提前谢谢你。

【问题讨论】:

注意:Star-CCM+ Java API 文档可以从菜单栏 > 帮助 > Java API 访问,它将在浏览器窗口中打开。 【参考方案1】:

这应该可行:

  simulation_0.saveState("Y:\\CFD Simulation\\Run\\" + simulation_0.getPresentationName() + "_Heave.sim");

【讨论】:

【参考方案2】:

simulation_0 不是实际模拟的名称 它只是一个 Simulation 类型的对象。

您可能需要simulation_0.getName 或simulation_0.getSimulationName() 来获取“simulation_0”的名称。

【讨论】:

【参考方案3】:

我能够解决我的问题并添加代码以将创建的文件添加到新目录。

      // making the file name extension string
  String append1 = "_Heave.sim";

  String dir1 = simulation_0.getSessionDir(); //getting the name of the sims directory
  
  String filename1 = simulation_0.getPresentationName(); //get the name of the current sim file

  String sep1 = System.getProperty("file.separator"); //get the right separator for your operative system

  String folder1 = (sep1 + filename1 + "_Five_Attitude_Study"); //making the first folders name

  String pathToNewDirectory1 = (dir1 + folder1); //applying it to the full path

  File fileObject1 = new File(pathToNewDirectory1); //making the new file folder

  Boolean yes1 = fileObject1.mkdir(); //checking that its there
  
  simulation_0.saveState(pathToNewDirectory1 + sep1 + filename1 + append1); //save the current sim file as| name_of_the_file@mod.sim

【讨论】:

以上是关于通过附加原始文件名保存文件的主要内容,如果未能解决你的问题,请参考以下文章

如何通过post方法从邮递员的原始数据中保存和下载视频文件等文件

如何保存包括原始文件名的matlab工作场所变量?

如何在上传文件时在Struts2中保存文件的原始名称

在保留标题的同时附加 2 个数据集

从原始文件中保存音频文件

我应该在Android中将文件保存到本地访问位置?