private void 择下载文件_Click(object sender, EventArgs e) { int fileID = -1; if (openFileDialog1.ShowDialog() == DialogResult.OK) { foreach (string fi in openFileDialog1.FileNames) { if (false == List_LoadFile.Items.Contains(fi)) { FileInfo fileInfo = new FileInfo(fi); restype = LoadFiletype(fileInfo, ref fileID); if (restype == Restype.NONE) { MessageBox.Show($"不识别文件{fileInfo}", "警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); } else { List_LoadFile.Items.Add(fi); if (fileInfo.Exists == true) { filelist.Add(fileInfo); } } } } int binnum = 0; //检查bin文件 foreach (FileInfo fi in filelist) { if (fi.Extension == ".bin") { binnum++; } } if (binnum > 1) { MessageBox.Show("不允许同时下载两个升级文件(.bin),请确定后重新添加", "警告", MessageBoxButtons.OKCancel, MessageBoxIcon.Information); filelist.Clear(); List_LoadFile.Items.Clear(); return; } file_sort(); //filelist进行排序 progressBar1.Value = 0; restype = Restype.NONE; } }
public Restype LoadFiletype(FileInfo fileinfo, ref int fileID) { string exten = fileinfo.Extension.ToLower(); Restype res = Restype.NONE; fileID = -1; switch (exten) { case ".ico": case ".dzk": if (exten == ".ico") { res = Restype.ico; } else { res = Restype.dzk; } char[] namebyte = fileinfo.Name.ToCharArray(); if (namebyte.Length >= 5) { if (namebyte[0] < '0' || namebyte[0] > '9') { res = Restype.NONE; break; } byte num = 0; string filenum = string.Empty; do { if (namebyte[num] >= '0' && namebyte[num] <= '9') { if (num >= 4) { res = Restype.NONE; break; } filenum += namebyte[num]; num++; } else { if (num <= 3) { //res = Restype.NONE; break; } } } while (num < (namebyte.Length - 4)); if (filenum != string.Empty && num < 4) { fileID = Convert.ToInt32(filenum); if (fileID < 0 || fileID > 255) { res = Restype.NONE; } break; } } res = Restype.NONE; break; case ".bin": res = Restype.bin; break; default: res = Restype.NONE; break; } return(res); }