/// <summary> /// 添加分区计划 /// </summary> /// <param name="Size"></param> /// <returns>错误号</returns> public int addPartition(UInt64 Size, PartitonInfo.FileSystems filesystem) { if (Size > restSize) { return(1); //超出限制 } if (partitionBulider.partitionlist.Count == 4) { return(2); //分区上限 } if (partitionBulider.partitionlist.Count == 0) { partitionBulider.partitionlist.Add(new PartitonInfo { StartSector = 2048, SectorCount = (uint)(Size << 11), FileSystem = filesystem, Status = PartitonInfo.Statusx.active }); } else { partitionBulider.partitionlist.Add(new PartitonInfo { StartSector = partitionBulider.partitionlist.Last().StartSector + partitionBulider.partitionlist.Last().SectorCount, SectorCount = (uint)(Size << 11), FileSystem = filesystem, Status = PartitonInfo.Statusx.inactive }); } restSize -= Size; return(0);//成功添加 }
/// <summary> /// 添加分区计划,先处理好数据再传入controller /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Add(object sender, RoutedEventArgs e) { PartitonInfo.FileSystems filesystem = PartitonInfo.FileSystems.Empty; switch (this.fileSystemPicker.SelectedIndex) { case 0: //NTFS filesystem = PartitonInfo.FileSystems.NTFS; break; case 1: filesystem = PartitonInfo.FileSystems.EFI; break; case 2: filesystem = PartitonInfo.FileSystems.Empty; break; case 3: filesystem = PartitonInfo.FileSystems.MicrosoftReserved; break; default: break; } UInt64 size = 0; try { size = Convert.ToUInt64(newSizeTextBox.Text); } catch (Exception) { this.output.Text = "分区参数有误"; } if (size == 0) { return; } var res = controller.addPartition(size, filesystem); if (res == 1) { output.Text = "大小超出限制"; return; } else if (res == 2) { output.Text = "已达分区上限"; return; } else { output.Text = "添加成功"; } missionlist.Add(new missions { size = newSizeTextBox.Text }); }