我需要创建 x 个文件(一组),但我必须首先检查这些文件是否存在具有相似名称的文件。
例如,tiftest1.tif, tiftest2.tif, ... 存在,我必须再次将 tiftest 写入同一目录。我想将 _x 附加到文件名的末尾,其中 x 是一个自动递增的数字,每次我想创建集合时。所以我可以有 tiftest1_1.tif,tiftest2_1.tif, tiftest1_2.tif, tiftest2_2.tif, tiftest1_3.tif, tiftest2_3.tif 等等。
这是我到目前为止所拥有的:
...
DirectoryInfo root = new DirectoryInfo(fileWatch.Path);
FileInfo[] exist = root.GetFiles(fout + "*.tif");
if (exist.Length > 0)
{
int cnt = 0;
do
{
cnt++;
DirectoryInfo root1 = new DirectoryInfo(fileWatch.Path);
FileInfo[] exist1 = root.GetFiles(fout + "*" + "_" + cnt + ".tif");
arg_proc = "-o " + "\"" + fileWatch.Path
+ "\\" + fout + "%03d_" + cnt + ".tif\" -r " + "\"" + openDialog.FileName + "\"";
} while (exist1.Length > 0); //exist1 is out of scope so this doesn't work
}
else
{
arg_proc = "-o " + "\"" + fileWatch.Path
+ "\\" + fout + "%03d.tif\" -r " + "\"" + openDialog.FileName + "\"";
}
...
exists1.length 超出范围,因此循环将继续运行。我不确定如何纠正这个问题。我的方法是最初扫描目录以查找匹配项并查看数组的长度是否大于 0。如果大于 0,则 _x 将自动递增,直到找不到匹配项。arg_proc 是用于创建文件的函数(不包括在内)中的字符串。