1

我正在尝试在需要读取文件并重命名它们的 beanshell 中编写 java。但问题是文件名具有根据日期每天更改的附加数字,例如。样本文件 0521,样本文件 0524。我需要读取具有最新时间戳的文件并以 SampleFile 开头。

4

2 回答 2

1

可以尝试在 Sailpoint 中的 Post-Iterate 规则中编写重命名代码。

于 2021-06-09T11:28:41.923 回答
1

您的问题并非特定于 Sailpoint IIQ 或 Beanshell。其实这里似乎是一个纯Java的问题要解决。

但是,您的问题缺少一些信息。这里的上下文是什么?您是否尝试在分隔文件 IIQ 连接器中读取 CSV 文件?并且在读取文件后,您需要重命名它吗?这里有很多假设。

这里似乎发生的是,您有一个分隔文件 IIQ 连接器,该连接器需要一个特定的输入文件(比如说 SampleFile.txt),但每天您只会得到一个像 SampleFileMMdd.txt 这样的新文件,您需要将其重命名为 SampleFile.txt处理前。

如果是这种情况,您可以在预处理规则中尝试类似这样的代码。

    import java.io.File;
    import java.text.SimpleDateFormat;
    import java.util.Date;

    SimpleDateFormat sdf = new SimpleDateFormat("MMdd");
    String expectedFileName = "SampleFile"+sdf.format(new Date())+".txt";
    File dir = new File(<YOUR TARGET DIR HERE>);
    File f = new File(dir,expectedFileName);
    boolean worked = f.renameTo(new File(dir,"SampleFile.txt"));
    if (!worked) {
        //for example, there was already a file called SampleFile.txt up there
        throw new Exception("Could not rename the file...");
    }
于 2021-07-13T20:14:34.113 回答