123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using DiskAccessLibrary;
- using DiskAccessLibrary.LogicalDiskManager;
- namespace ISCSIConsole
- {
- public partial class Program
- {
- public static void DetailCommand(string[] args)
- {
- if (args.Length == 2)
- {
- switch (args[1].ToLower())
- {
- case "disk":
- {
- Console.WriteLine();
- if (m_selectedDisk != null)
- {
- Console.WriteLine("Size: {0} bytes", m_selectedDisk.Size.ToString("###,###,###,###,##0"));
- if (m_selectedDisk is PhysicalDisk)
- {
- PhysicalDisk disk = (PhysicalDisk)m_selectedDisk;
- Console.WriteLine("Geometry: Heads: {0}, Cylinders: {1}, Sectors Per Track: {2}", disk.TracksPerCylinder, disk.Cylinders, disk.SectorsPerTrack);
- Console.WriteLine();
- }
- else if (m_selectedDisk is DiskImage)
- {
- DiskImage disk = (DiskImage)m_selectedDisk;
- Console.WriteLine("Disk image path: {0}", disk.Path);
- Console.WriteLine();
- }
-
- MasterBootRecord mbr = MasterBootRecord.ReadFromDisk(m_selectedDisk);
- if (mbr != null)
- {
- Console.WriteLine("Partitioning scheme: " + (mbr.IsGPTBasedDisk ? "GPT" : "MBR"));
- }
- DynamicDisk dynamicDisk = DynamicDisk.ReadFromDisk(m_selectedDisk);
- Console.WriteLine("Disk type: " + ((dynamicDisk != null) ? "Dynamic Disk" : "Basic Disk"));
- }
- else
- {
- Console.WriteLine("No disk has been selected.");
- }
- break;
- }
- case "volume":
- case "partition":
- {
- Console.WriteLine();
- if (m_selectedVolume != null)
- {
- Console.WriteLine("Volume size: {0} bytes", m_selectedVolume.Size.ToString("###,###,###,###,##0"));
- if (m_selectedVolume is GPTPartition)
- {
- Console.WriteLine("Partition name: {0}", ((GPTPartition)m_selectedVolume).PartitionName);
- }
- Guid? windowsVolumeGuid = WindowsVolumeHelper.GetWindowsVolumeGuid(m_selectedVolume);
- if (windowsVolumeGuid.HasValue)
- {
- List<string> mountPoints = WindowsVolumeManager.GetMountPoints(windowsVolumeGuid.Value);
- foreach (string volumePath in mountPoints)
- {
- Console.WriteLine("Volume path: {0}", volumePath);
- }
- bool isMounted = WindowsVolumeManager.IsMounted(windowsVolumeGuid.Value);
- Console.WriteLine("Mounted: {0}", isMounted);
- }
- }
- else
- {
- Console.WriteLine("No volume has been selected.");
- }
- break;
- }
- default:
- Console.WriteLine("Invalid argument.");
- HelpDetail();
- break;
- }
- }
- else if (args.Length > 2)
- {
- Console.WriteLine("Too many arguments.");
- HelpDetail();
- }
- else
- {
- HelpDetail();
- }
- }
- public static void HelpDetail()
- {
- Console.WriteLine();
- Console.WriteLine("DETAIL DISK - Display selected disk details");
- Console.WriteLine("DETAIL VOLUME - Display selected volume details");
- }
- }
- }
|