从Excel读取信息,新建文件夹,根据起始页号和页数取图片,并将图片重命名

if (pFlagOK)
{
DirectoryInfo[] imgFolders = new DirectoryInfo(imageFolder).GetDirectories();
DirectoryInfo directoryInfos = null;
DataTable pDataTable = ds.Tables["Sheet1"];

//循环遍历文件夹
for (int y = 0; y < imgFolders.Length; y++)
{
//获取文件夹的名称:064
filename.Add(imgFolders[y].Name, imgFolders[y].Name);
//获取文件夹的路径
directoryInfos = new DirectoryInfo(imageFolder + "\" + imgFolders[y].Name);
//根据文件夹名称获取到文件路劲
oldname.Add(imgFolders[y].Name, directoryInfos);
//图像路径
FileInfo[] fileInfos = oldname[imgFolders[y].Name].GetFiles();

//文件夹名称
WjjName = imgFolders[y].Name;
Dictionary<string, string> imgname = new Dictionary<string, string>();
ArrayList ArrayList = new ArrayList();
FileInfo[] imgages = directoryInfos.GetFiles("*.jpg");
//循环遍历图像文件
for (int i = 0; i < fileInfos.Length; i++)
{
imgname.Add(fileInfos[i].Name, fileInfos[i].FullName);
ArrayList.Add(fileInfos[i].FullName);
//Array.Sort(imgages, new ImagFileComparer());
}


int SumYS = 0;

//循环遍历excel
for (int i = 0; i < pDataTable.Rows.Count; i++)
{

JH = pDataTable.Rows[i]["卷号"].ToString();
JianH = pDataTable.Rows[i]["件号"].ToString();
YH = pDataTable.Rows[i]["页码"].ToString();
YS = int.Parse(pDataTable.Rows[i]["页数"].ToString());


if (pDataTable.Rows[i]["页码"].ToString().Equals("1"))
{
SumYS = 0;
}
else
{
int ys = int.Parse(pDataTable.Rows[i - 1]["页数"].ToString());
SumYS += ys;
}
string name = WjjName.PadLeft(3, '0');
//文件夹名称是否等于excel的卷号名称
if (name == JH || name == JH.PadLeft(3, '0'))
{

//文件夹里的图像文件是否带有两个-,则是已经重命名过
string Email = fileInfos[10].ToString();
int num = Regex.Matches(Email, "_").Count;
if (num != 2)
{
//判断excel是不是最后一行
if (i < pDataTable.Rows.Count - 1)
{
//获取到每件的图像页码
b = int.Parse(pDataTable.Rows[i]["页码"].ToString());
a = int.Parse(pDataTable.Rows[i + 1]["页码"].ToString());


//判断excel是否
if (pDataTable.Rows[i]["页码"].ToString() == "1")
{

for (int k = 1; k <= YS; k++)
{
jpgName = JH.ToString() + "_" + JianH.ToString() + "_" + k.ToString().PadLeft(4, '0') + ".jpg";
newname = directoryInfos + ("\") + jpgName;
System.IO.File.Move(ArrayList[k - 1].ToString(), newname);
metroSideMessage1.ShowMessage(enumMessageIconType.InfoOrange, "提示", "图像文件重命名成功!");
}

}

if (pDataTable.Rows[i]["页码"].ToString() != "1")
{
int h = 0;
h = int.Parse(pDataTable.Rows[i - 1]["页数"].ToString());
for (int k = 1; k <= YS; k++)
{

jpgName = JH.ToString() + "_" + JianH.ToString() + "_" + k.ToString().PadLeft(4, '0') + ".jpg";
newname = directoryInfos + ("\") + jpgName;
System.IO.File.Move(fileInfos[(SumYS + k) - 1].FullName, newname);
metroSideMessage1.ShowMessage(enumMessageIconType.InfoOrange, "提示", "图像文件重命名成功!");


}

}
}


if (i == pDataTable.Rows.Count - 1)
{
b = int.Parse(pDataTable.Rows[i]["页码"].ToString());
a = fileInfos.Length;

for (int k = 1; k <= YS; k++)
{

jpgName = JH.ToString() + "_" + JianH.ToString() + "_" + k.ToString().PadLeft(4, '0') + ".jpg";
newname = directoryInfos + ("\") + jpgName;
metroSideMessage1.ShowMessage(enumMessageIconType.InfoOrange, "提示", "图像文件重命名成功!");

}
}

}
else
{
break;

}


}

else
{

continue;
}

}
number++;
mtbFJ.ButtonTextProContentText = "已重命名" + number + "卷号";
System.Windows.Forms.Application.DoEvents();


}

原文地址:https://www.cnblogs.com/yyldh/p/14030369.html