原因:Domino导出的附件中有时为HTM页面,里面对图片等的引用路径多含了“$FILE/”
需求:替换指定文件夹中HTM页面中的“$FILE/”为空
方案:利用Java程序解决操作本地文件夹和文件
源代码如下:
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class ChangeFolderFiles {
public static int count =0;
public static void main(String[] args) {
String path = "C://test";//---需操作的文件夹路径
changeFile(path);
System.out.println("共更改 "+count+" 处!");
}
public static void changeFile(String tmpfilepath) {
File tmpfile = new File(tmpfilepath);
if (tmpfile.isDirectory()) {
File[] files = tmpfile.listFiles();
for (int i = 0; i < files.length; i++) {
changeFile(files[i].getPath());
}
} else if (tmpfile.isFile()) {
FileInputStream fin = null;
FileOutputStream fout = null;
String filename = tmpfile.getName();
try {
if (filename.substring(filename.length() - 4).equalsIgnoreCase(".HTM")) {
fout = new FileOutputStream(new File(tmpfile.getParentFile().getPath() + "//" + tmpfile.getParentFile().getName() + ".htm"));
fin = new FileInputStream(tmpfile);
BufferedReader br = new BufferedReader(new InputStreamReader(fin));
String strline = "";
while ((strline = br.readLine()) != null) {
if (strline.indexOf("$FILE/") > -1) {
strline = strline.replace("$FILE/", "");
count++;
}
fout.write((strline + "/r/n").getBytes());
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fin != null) {
fin.close();
}
if (fout != null) {
fout.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
} else {
System.out.println("提供的文件路径有问题!");
}
}
}
经过测试,可以正常满足需求。