C# 如果存在上一组文件,则自动增加文件名结尾
我需要创建x个文件(一组),但我必须首先检查这些文件是否具有类似的名称 例如,tiftest1.tif、tiftest2.tif。。。存在,我必须再次将测试写入同一目录。我想在文件名的末尾加上x,其中x是一个数字,每次我想创建集合时,它都会自动递增。所以我可以使用tiftest1_1.tif、tiftest2_1.tif、tiftest1_2.tif、tiftest2_2.tif、tiftest1_3.tif、tiftest2_3.tif等等 以下是我到目前为止的情况:C# 如果存在上一组文件,则自动增加文件名结尾,c#,C#,我需要创建x个文件(一组),但我必须首先检查这些文件是否具有类似的名称 例如,tiftest1.tif、tiftest2.tif。。。存在,我必须再次将测试写入同一目录。我想在文件名的末尾加上x,其中x是一个数字,每次我想创建集合时,它都会自动递增。所以我可以使用tiftest1_1.tif、tiftest2_1.tif、tiftest1_2.tif、tiftest2_2.tif、tiftest1_3.tif、tiftest2_3.tif等等 以下是我到目前为止的情况: ... Director
...
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 + "\"";
}
...
exist1.length超出范围,因此循环将继续运行。我不确定如何纠正这一点。我的方法是最初扫描目录以查找匹配项,并查看数组的长度是否大于0。如果大于0,则_x将自动递增,直到找不到匹配项为止。arg_proc是用于创建文件的函数(不包括)中的字符串。难道不能重用
exist
变量吗
FileInfo[] exist = root.GetFiles(fout + "*.tif");
if (exist.Length > 0)
{
int cnt = 0;
do
{
cnt++;
DirectoryInfo root1 = new DirectoryInfo(fileWatch.Path);
exist = root.GetFiles(fout + "*" + "_" + cnt + ".tif");
arg_proc = "-o " + "\"" + fileWatch.Path + "\\"
+ fout + "%03d_" + cnt + ".tif\" -r " + "\"" + openDialog.FileName + "\"";
} while (exist.Length > 0);
}
...
这样,存在
就不会超出范围。在开始递增计数器后,您似乎不需要原始文件列表,因此如果是这样,您可以继续重用exist
来计算现有文件名