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