private List <T_DISK_INFO> Get_Selected_DISK_INFO() { List <T_DISK_INFO> l_dele = new List <T_DISK_INFO>(); for (int i = 0; i < dataGridView1.RowCount; i++) { if (dataGridView1.Rows[i].Cells[0].Value != null && dataGridView1.Rows[i].Cells[0].Value.ToString() == "1") { T_DISK_INFO tdi = dataGridView1.Rows[i].Tag as T_DISK_INFO; l_dele.Add(tdi); } } return(l_dele); }
private void button5_Click(object sender, EventArgs e) { if (lb_Files.Tag != null && cb_disk.Tag != null) { List <T_Video> lts = (List <T_Video>)lb_Files.Tag; List <T_DISK_INFO> dis = (List <T_DISK_INFO>)cb_disk.Tag; T_DISK_INFO di = dis[cb_disk.SelectedIndex]; double d_source_size = 0; if (lb_Total_Size.Tag != null) { d_source_size = Math.Round((double)lb_Total_Size.Tag, 4); } Task_Info ti = new Task_Info(); ti.id = Guid.NewGuid().ToString(); List <string> arr_file_path = new List <string>(); List <string> arr_copy_type = new List <string>(); foreach (var v in lts) { arr_file_path.Add(v.FILE_FULLPATH); if (v.FILE_INDEX == "1") { arr_copy_type.Add(v.FILE_INDEX); } else { arr_copy_type.Add("0"); } } ti.arr_source = arr_file_path.ToArray(); ti.copy_type = string.Join(",.,", arr_copy_type); ti.source_size = d_source_size; ti.target = di.LOGICAL_NAME; if (di.LOGICAL_TOTALSIZE.HasValue) { ti.target_size = Math.Round(di.LOGICAL_TOTALSIZE.Value, 4); } if (di.LOGICAL_FREESPACE.HasValue) { ti.target_free_size = di.LOGICAL_FREESPACE.Value; } int i_exists = -1; //是否存在相同的硬盘拷贝 for (int i = 0; i < lts.Count; i++) { if (lts[i].FILE_ROOT == ti.target) { i_exists = i; break; } } //此处应该增加排除相同任务的判定,待到重构时增加 if (i_exists > -1) { if (MessageBox.Show("拷贝任务中拷贝文件【" + (i_exists + 1) + "】存在源硬盘与目标硬盘名称相同【" + ti.target + "】,是否继续?", "系统提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) != DialogResult.OK) { return; } } //待添加硬盘剩余空间的判定 DataGridViewRow dr = new DataGridViewRow(); dr.CreateCells(dgv_Task); dr.Cells[0].Value = "0"; dr.Cells[1].Value = ti.source_size; dr.Cells[2].Value = ti.target; dr.Cells[3].Value = ti.target_size; dr.Tag = ti; //添加的行作为第一行 dgv_Task.Rows.Insert(0, dr); int i_count = Convert.ToInt16(lb_Task_count.Tag); i_count++; string str_format = "数量:{0}"; lb_Task_count.Tag = i_count; lb_Task_count.Text = string.Format(str_format, i_count); Command_info c = new Command_info(); c.type = 4; c.msg = string.Join(",.,", ti.arr_source); c.msg2 = ti.copy_type; c.tag = Helper_Json.Encode(ti); //c.tag = ti.id; string str_c = Helper_Json.Encode(c); int i_success = MyVideoBussiness.Add_Task_Info(ti, lts); if (i_success > 0) { long r_l = h_redis.RedisPub(str_r_rep, str_c); SetrichTextBox("拷贝任务....." + ti.arr_source.Length + "..." + i_success); } else { SetrichTextBox("记录失败....." + i_success + "..."); } } }