Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
        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);
        }