예제 #1
0
 /// <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);//成功添加
 }
예제 #2
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
            });
        }