コード例 #1
0
ファイル: FatStream.cs プロジェクト: iSalva/Cosmos
    public FatStream(Listing.FatFile aFile) {
      mFile = aFile;
      mFS = mFile.FileSystem;
      mReadBuffer = mFile.FileSystem.NewClusterArray();

      if (mFile.Size > 0) {
        mFatTable = mFile.GetFatTable();
      }
    }
コード例 #2
0
ファイル: FatStream.cs プロジェクト: xsword911/Cosmos
        public FatStream(Listing.FatFile aFile)
        {
            mFile       = aFile;
            mFS         = mFile.FileSystem;
            mReadBuffer = mFile.FileSystem.NewClusterArray();

            if (mFile.Size > 0)
            {
                mFatTable = mFile.GetFatTable();
            }
        }
コード例 #3
0
ファイル: Kernel.cs プロジェクト: ChrisJamesSadler/Cosmos
		protected void TestATA()
		{
			#region Comment(OLD)
			/*
      try
      {
        Console.WriteLine();
        Console.WriteLine("Block devices found: " + BlockDevice.Devices.Count);

        AtaPio xATA = null;
        for (int i = 0; i < BlockDevice.Devices.Count; i++)
        {
          var xDevice = BlockDevice.Devices[i];
          if (xDevice is AtaPio)
          {
            xATA = (AtaPio)xDevice;
          }
        }
        Console.WriteLine("--------------------------");
        Console.WriteLine("Type: " + (xATA.DriveType == AtaPio.SpecLevel.ATA ? "ATA" : "ATAPI"));
        Console.WriteLine("Serial No: " + xATA.SerialNo);
        Console.WriteLine("Firmware Rev: " + xATA.FirmwareRev);
        Console.WriteLine("Model No: " + xATA.ModelNo);
        Console.WriteLine("Block Size: " + xATA.BlockSize + " bytes");
        Console.WriteLine("Size: " + xATA.BlockCount * xATA.BlockSize / 1024 / 1024 + " MB");

        //Partition xPartition = null;
        //for (int i = 0; i < BlockDevice.Devices.Count; i++)
        //{
        //  var xDevice = BlockDevice.Devices[i];
        //  if (xDevice is Partition)
        //  {
        //    xPartition = (Partition)xDevice;
        //  }
        //}

        //var xFS = new FAT.FatFileSystem(xPartition);
        //Sys.Filesystem.FileSystem.AddMapping("C", xFS);

        //Console.WriteLine();
        //Console.WriteLine("Root directory");
        //var xListing = xFS.GetRoot();
        //FAT.Listing.FatFile xRootFile = null;
        //FAT.Listing.FatFile xKudzuFile = null;
        //for (int i = 0; i < xListing.Count; i++)
        //{
        //  var xItem = xListing[i];
        //  if (xItem is Sys.Filesystem.Listing.Directory)
        //  {
        //    Console.WriteLine("<" + xListing[i].Name + ">");
        //  }
        //  else if (xItem is Sys.Filesystem.Listing.File)
        //  {
        //    Console.WriteLine();
        //    Console.WriteLine(xListing[i].Name);
        //    Console.WriteLine(xListing[i].Size);
        //    if (xListing[i].Name == "Root.txt")
        //    {
        //      xRootFile = (FAT.Listing.FatFile)xListing[i];
        //    }
        //    else if (xListing[i].Name == "Kudzu.txt")
        //    {
        //      xKudzuFile = (FAT.Listing.FatFile)xListing[i];
        //    }
        //  }
        //}

        //{
        //  var xStream = new Sys.Filesystem.FAT.FatStream(xRootFile);
        //  var xData = new byte[xRootFile.Size];
        //  xStream.Read(xData, 0, (int)xRootFile.Size);
        //  var xText = Encoding.ASCII.GetString(xData);
        //  Console.WriteLine(xText);
        //}

        //{
        //  Console.WriteLine();
        //  Console.WriteLine("StreamReader");
        //  var xStream = new Sys.Filesystem.FAT.FatStream(xRootFile);
        //  var xReader = new System.IO.StreamReader(xStream);
        //  string xText = xReader.ReadToEnd();
        //  Console.WriteLine(xText);
        //}

        //var xKudzuStream = new Sys.Filesystem.FAT.FatStream(xKudzuFile);
        //var xKudzuData = new byte[xKudzuFile.Size];
        //xKudzuStream.Read(xKudzuData, 0, (int)xKudzuFile.Size);

        //string xLower = "Hello";
        //Console.WriteLine(xLower.ToUpper());
        //Console.WriteLine(xLower.ToLower());

        //var xFile = new System.IO.FileStream(@"c:\Root.txt", System.IO.FileMode.Open);

        //int dummy = 42;

        //var xWrite = new byte[512];
        //for (int i = 0; i < 512; i++)
        //{
        //  xWrite[i] = (byte)i;
        //}
        //xATA.WriteBlock(0, 1, xWrite);

        //var xRead = xATA.NewBlockArray(1);
        //xATA.ReadBlock(0, 1, xRead);
        //string xDisplay = "";
        //for (int i = 0; i < 512; i++)
        //{
        //  xDisplay = xDisplay + xRead[i].ToHex();
        //}
        //Console.WriteLine(xDisplay);

      }
      catch (Exception e)
      {
        Console.WriteLine("Exception: " + e.Message);
        Stop();
      }*/
			#endregion
			try
			{

				Console.WriteLine();
				Console.WriteLine("Block devices found: " + BlockDevice.Devices.Count);

				AtaPio xATA = null;
				for (int i = 0; i < BlockDevice.Devices.Count; i++)
				{
					var xDevice = BlockDevice.Devices[i];
					if (xDevice is AtaPio)
					{
						xATA = (AtaPio)xDevice;
					}
				}

				//Info
				Console.WriteLine("--------------------------");
				Console.WriteLine("Type: " + (xATA.DriveType == AtaPio.SpecLevel.ATA ? "ATA" : "ATAPI"));
				Console.WriteLine("Serial No: " + xATA.SerialNo);
				Console.WriteLine("Firmware Rev: " + xATA.FirmwareRev);
				Console.WriteLine("Model No: " + xATA.ModelNo);
				Console.WriteLine("Block Size: " + xATA.BlockSize + " bytes");
				Console.WriteLine("Size: " + xATA.BlockCount * xATA.BlockSize / 1024 / 1024 + " MB");

				//Partition Detecting
				Partition xPartition = null;
				if (BlockDevice.Devices.Count > 0)
				{
					for (int i = 0; i < BlockDevice.Devices.Count; i++)
					{
						var xDevice = BlockDevice.Devices[i];
						if (xDevice is Partition)
						{
							xPartition = (Partition)xDevice;

							Console.WriteLine("FAT FS");
							var xFS = new FAT.FatFileSystem(xPartition);

							Console.WriteLine("Mapping...");
							FileSystem.AddMapping(xFS);


							Console.WriteLine();
							Console.WriteLine("Root directory");

							var xListing = xFS.GetRoot();
							FAT.Listing.FatFile xRootFile = null;
							FAT.Listing.FatFile xKudzuFile = null;

							var xFile = default(FAT.Listing.FatFile);
							for (int j = 0; j < xListing.Count; j++)
							{
								var xItem = xListing[j];
								if (xItem is Sys.Filesystem.Listing.Directory)
								{
									//Detecting Dir in HDD
									Console.WriteLine("<DIR> " + xListing[j].Name);
								}
								else if (xItem is Sys.Filesystem.Listing.File)
								{
									//Detecting File in HDD
									Console.WriteLine("<FILE> " + xListing[j].Name + " (" + xListing[j].Size + ")");
									if (xListing[j].Name == "Root.txt")
									{
										xRootFile = (FAT.Listing.FatFile)xListing[j];
									}
									else if (xListing[j].Name == "Kudzu.txt")
									{
										xKudzuFile = (FAT.Listing.FatFile)xListing[j];
									}
									else if (xListing[j].Name == "Amanp.txt") xFile = (FAT.Listing.FatFile)xListing[j]; 
								}
							}

							try
							{
								Console.WriteLine();
								Console.WriteLine("StreamReader - Root File");
								var xStream = new Sys.Filesystem.FAT.FatStream(xRootFile);
								var xData = new byte[xRootFile.Size];
								xStream.Read(xData, 0, (int)xRootFile.Size);
								var xText = Encoding.ASCII.GetString(xData);
								Console.WriteLine(xText);
							}
							catch (Exception e)
							{
								Console.WriteLine("Error: " + e.Message);
							}

							var xKudzuStream = new Sys.Filesystem.FAT.FatStream(xKudzuFile);
							var xKudzuData = new byte[xKudzuFile.Size];
							xKudzuStream.Read(xKudzuData, 0, (int)xKudzuFile.Size);

							if (xFile != null)
							{
								//var xFs = new Sys.Filesystem.FAT.FatStream(xFile);
								//xFs.Write(new byte[1024], 0, 1024);
							}
							

						}
					}
				}
				else
				{
					Console.WriteLine("No Block Device Found! ");
				}
			}
			catch (Exception e)
			{
				Console.WriteLine("Error: " + e.Message);
			}
		}
コード例 #4
0
 public FAT32(Cosmos.Hardware.BlockDevice.Partition p) : base(p)
 {
     xFS = new FAT.FatFileSystem(p);
 }
コード例 #5
0
ファイル: Kernel.cs プロジェクト: zer09/Cosmos
        protected void TestATA()
        {
            #region Comment(OLD)

            /*
             * try
             * {
             * Console.WriteLine();
             * Console.WriteLine("Block devices found: " + BlockDevice.Devices.Count);
             *
             * AtaPio xATA = null;
             * for (int i = 0; i < BlockDevice.Devices.Count; i++)
             * {
             * var xDevice = BlockDevice.Devices[i];
             * if (xDevice is AtaPio)
             * {
             * xATA = (AtaPio)xDevice;
             * }
             * }
             * Console.WriteLine("--------------------------");
             * Console.WriteLine("Type: " + (xATA.DriveType == AtaPio.SpecLevel.ATA ? "ATA" : "ATAPI"));
             * Console.WriteLine("Serial No: " + xATA.SerialNo);
             * Console.WriteLine("Firmware Rev: " + xATA.FirmwareRev);
             * Console.WriteLine("Model No: " + xATA.ModelNo);
             * Console.WriteLine("Block Size: " + xATA.BlockSize + " bytes");
             * Console.WriteLine("Size: " + xATA.BlockCount * xATA.BlockSize / 1024 / 1024 + " MB");
             *
             * //Partition xPartition = null;
             * //for (int i = 0; i < BlockDevice.Devices.Count; i++)
             * //{
             * //  var xDevice = BlockDevice.Devices[i];
             * //  if (xDevice is Partition)
             * //  {
             * //    xPartition = (Partition)xDevice;
             * //  }
             * //}
             *
             * //var xFS = new FAT.FatFileSystem(xPartition);
             * //Sys.Filesystem.FileSystem.AddMapping("C", xFS);
             *
             * //Console.WriteLine();
             * //Console.WriteLine("Root directory");
             * //var xListing = xFS.GetRoot();
             * //FAT.Listing.FatFile xRootFile = null;
             * //FAT.Listing.FatFile xKudzuFile = null;
             * //for (int i = 0; i < xListing.Count; i++)
             * //{
             * //  var xItem = xListing[i];
             * //  if (xItem is Sys.Filesystem.Listing.Directory)
             * //  {
             * //    Console.WriteLine("<" + xListing[i].Name + ">");
             * //  }
             * //  else if (xItem is Sys.Filesystem.Listing.File)
             * //  {
             * //    Console.WriteLine();
             * //    Console.WriteLine(xListing[i].Name);
             * //    Console.WriteLine(xListing[i].Size);
             * //    if (xListing[i].Name == "Root.txt")
             * //    {
             * //      xRootFile = (FAT.Listing.FatFile)xListing[i];
             * //    }
             * //    else if (xListing[i].Name == "Kudzu.txt")
             * //    {
             * //      xKudzuFile = (FAT.Listing.FatFile)xListing[i];
             * //    }
             * //  }
             * //}
             *
             * //{
             * //  var xStream = new Sys.Filesystem.FAT.FatStream(xRootFile);
             * //  var xData = new byte[xRootFile.Size];
             * //  xStream.Read(xData, 0, (int)xRootFile.Size);
             * //  var xText = Encoding.ASCII.GetString(xData);
             * //  Console.WriteLine(xText);
             * //}
             *
             * //{
             * //  Console.WriteLine();
             * //  Console.WriteLine("StreamReader");
             * //  var xStream = new Sys.Filesystem.FAT.FatStream(xRootFile);
             * //  var xReader = new System.IO.StreamReader(xStream);
             * //  string xText = xReader.ReadToEnd();
             * //  Console.WriteLine(xText);
             * //}
             *
             * //var xKudzuStream = new Sys.Filesystem.FAT.FatStream(xKudzuFile);
             * //var xKudzuData = new byte[xKudzuFile.Size];
             * //xKudzuStream.Read(xKudzuData, 0, (int)xKudzuFile.Size);
             *
             * //string xLower = "Hello";
             * //Console.WriteLine(xLower.ToUpper());
             * //Console.WriteLine(xLower.ToLower());
             *
             * //var xFile = new System.IO.FileStream(@"c:\Root.txt", System.IO.FileMode.Open);
             *
             * //int dummy = 42;
             *
             * //var xWrite = new byte[512];
             * //for (int i = 0; i < 512; i++)
             * //{
             * //  xWrite[i] = (byte)i;
             * //}
             * //xATA.WriteBlock(0, 1, xWrite);
             *
             * //var xRead = xATA.NewBlockArray(1);
             * //xATA.ReadBlock(0, 1, xRead);
             * //string xDisplay = "";
             * //for (int i = 0; i < 512; i++)
             * //{
             * //  xDisplay = xDisplay + xRead[i].ToHex();
             * //}
             * //Console.WriteLine(xDisplay);
             *
             * }
             * catch (Exception e)
             * {
             * Console.WriteLine("Exception: " + e.Message);
             * Stop();
             * }*/
            #endregion
            try
            {
                Console.WriteLine();
                Console.WriteLine("Block devices found: " + BlockDevice.Devices.Count);

                AtaPio xATA = null;
                for (int i = 0; i < BlockDevice.Devices.Count; i++)
                {
                    var xDevice = BlockDevice.Devices[i];
                    if (xDevice is AtaPio)
                    {
                        xATA = (AtaPio)xDevice;
                    }
                }

                //Info
                Console.WriteLine("--------------------------");
                Console.WriteLine("Type: " + (xATA.DriveType == AtaPio.SpecLevel.ATA ? "ATA" : "ATAPI"));
                Console.WriteLine("Serial No: " + xATA.SerialNo);
                Console.WriteLine("Firmware Rev: " + xATA.FirmwareRev);
                Console.WriteLine("Model No: " + xATA.ModelNo);
                Console.WriteLine("Block Size: " + xATA.BlockSize + " bytes");
                Console.WriteLine("Size: " + xATA.BlockCount * xATA.BlockSize / 1024 / 1024 + " MB");

                //Partition Detecting
                Partition xPartition = null;
                if (BlockDevice.Devices.Count > 0)
                {
                    for (int i = 0; i < BlockDevice.Devices.Count; i++)
                    {
                        var xDevice = BlockDevice.Devices[i];
                        if (xDevice is Partition)
                        {
                            xPartition = (Partition)xDevice;

                            Console.WriteLine("FAT FS");
                            var xFS = new FAT.FatFileSystem(xPartition);

                            Console.WriteLine("Mapping...");
                            FileSystem.AddMapping(xFS);


                            Console.WriteLine();
                            Console.WriteLine("Root directory");

                            var xListing = xFS.GetRoot();
                            FAT.Listing.FatFile xRootFile  = null;
                            FAT.Listing.FatFile xKudzuFile = null;

                            var xFile = default(FAT.Listing.FatFile);
                            for (int j = 0; j < xListing.Count; j++)
                            {
                                var xItem = xListing[j];
                                if (xItem is Sys.Filesystem.Listing.Directory)
                                {
                                    //Detecting Dir in HDD
                                    Console.WriteLine("<DIR> " + xListing[j].Name);
                                }
                                else if (xItem is Sys.Filesystem.Listing.File)
                                {
                                    //Detecting File in HDD
                                    Console.WriteLine("<FILE> " + xListing[j].Name + " (" + xListing[j].Size + ")");
                                    if (xListing[j].Name == "Root.txt")
                                    {
                                        xRootFile = (FAT.Listing.FatFile)xListing[j];
                                    }
                                    else if (xListing[j].Name == "Kudzu.txt")
                                    {
                                        xKudzuFile = (FAT.Listing.FatFile)xListing[j];
                                    }
                                    else if (xListing[j].Name == "Amanp.txt")
                                    {
                                        xFile = (FAT.Listing.FatFile)xListing[j];
                                    }
                                }
                            }

                            try
                            {
                                Console.WriteLine();
                                Console.WriteLine("StreamReader - Root File");
                                var xStream = new Sys.Filesystem.FAT.FatStream(xRootFile);
                                var xData   = new byte[xRootFile.Size];
                                xStream.Read(xData, 0, (int)xRootFile.Size);
                                var xText = Encoding.ASCII.GetString(xData);
                                Console.WriteLine(xText);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Error: " + e.Message);
                            }

                            var xKudzuStream = new Sys.Filesystem.FAT.FatStream(xKudzuFile);
                            var xKudzuData   = new byte[xKudzuFile.Size];
                            xKudzuStream.Read(xKudzuData, 0, (int)xKudzuFile.Size);

                            if (xFile != null)
                            {
                                //var xFs = new Sys.Filesystem.FAT.FatStream(xFile);
                                //xFs.Write(new byte[1024], 0, 1024);
                            }
                        }
                    }
                }
                else
                {
                    Console.WriteLine("No Block Device Found! ");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e.Message);
            }
        }
コード例 #6
0
ファイル: Kernel.cs プロジェクト: ChrisJamesSadler/Cosmos
        protected override void Run()
        {
            Cosmos.Core.IOGroup.ATA ataOne = Cosmos.Core.Global.BaseIOGroups.ATA1;
            var xATA = new Cosmos.Hardware.BlockDevice.AtaPio(ataOne, Cosmos.Hardware.BlockDevice.Ata.ControllerIdEnum.Primary, Cosmos.Hardware.BlockDevice.Ata.BusPositionEnum.Master);
            Console.WriteLine(Cosmos.Hardware.BlockDevice.BlockDevice.Devices == null ? "BlockDevice, Devices List is null" : "BlockDevice, Devices List isn't null");
            for (int i = 0; i < Cosmos.Hardware.BlockDevice.BlockDevice.Devices.Count; i++) {
                var xDevice = Cosmos.Hardware.BlockDevice.BlockDevice.Devices[i];
              if (xDevice is AtaPio) {
                xATA = (AtaPio)xDevice;
              }
            }
            Console.WriteLine();
            Console.WriteLine("--------------------------");
            Console.WriteLine("Type: " + (xATA.DriveType == AtaPio.SpecLevel.ATA ? "ATA" : "ATAPI"));
            Console.WriteLine("Serial No: " + xATA.SerialNo);
            Console.WriteLine("Firmware Rev: " + xATA.FirmwareRev);
            Console.WriteLine("Model No: " + xATA.ModelNo);
            Console.WriteLine("Block Size: " + xATA.BlockSize + " bytes");
            Console.WriteLine("Size: " + xATA.BlockCount * xATA.BlockSize / 1024 / 1024 + " MB");

            Partition xPartition = null;
            for (int i = 0; i < BlockDevice.Devices.Count; i++) {
              var xDevice = BlockDevice.Devices[i];
              if (xDevice is Partition) {
                xPartition = (Partition)xDevice;
              }
            }
            if (xPartition != null)
            {
                Console.WriteLine();
                Console.WriteLine("--------------------------");

                Console.WriteLine("Partition found.");
                var xFS = new FatFileSystem(xPartition);

                Console.WriteLine();
                Console.WriteLine("BytesPerSector : " + xFS.BytesPerSector.ToString());
                Console.WriteLine("SectorsPerCluster : " + xFS.SectorsPerCluster.ToString());
                Console.WriteLine("BytesPerCluster : " + xFS.BytesPerCluster.ToString());
    
                Console.WriteLine("ReservedSectorCount : " + xFS.ReservedSectorCount.ToString());
                Console.WriteLine("TotalSectorCount : " + xFS.TotalSectorCount.ToString());
                Console.WriteLine("ClusterCount : " + xFS.ClusterCount.ToString());
    
                Console.WriteLine("NumberOfFATs : " + xFS.NumberOfFATs.ToString());
                Console.WriteLine("FatSectorCount : " + xFS.FatSectorCount.ToString());

                Console.WriteLine("RootSector : " + xFS.RootSector.ToString());
                Console.WriteLine("RootSectorCount : " + xFS.RootSectorCount.ToString());
                Console.WriteLine("RootCluster : " + xFS.RootCluster.ToString());
                Console.WriteLine("RootEntryCount : " + xFS.RootEntryCount.ToString());

                Console.WriteLine("DataSector : " + xFS.DataSector.ToString());
                Console.WriteLine("DataSectorCount : " + xFS.DataSectorCount.ToString());
            }
            else
            {
                Console.WriteLine("Partition not found.");
            }

            Console.WriteLine();
            Console.WriteLine("--------------------------");
            Console.Write("Pausing... (Press enter to continue.)");
            Console.ReadLine();
        }
コード例 #7
0
        protected override void Run()
        {
            try
            {
                Console.ReadLine();

                Console.WriteLine();
                Console.WriteLine("Block devices found: " + BlockDevice.Devices.Count);

                AtaPio xATA = null;
                for (int i = 0; i < BlockDevice.Devices.Count; i++)
                {
                    var xDevice = BlockDevice.Devices[i];
                    if (xDevice is AtaPio)
                    {
                        xATA = (AtaPio)xDevice;
                    }
                }

                //Info
                Console.WriteLine("--------------------------");
                Console.WriteLine("Type: " + (xATA.DriveType == AtaPio.SpecLevel.ATA ? "ATA" : "ATAPI"));
                Console.WriteLine("Serial No: " + xATA.SerialNo);
                Console.WriteLine("Firmware Rev: " + xATA.FirmwareRev);
                Console.WriteLine("Model No: " + xATA.ModelNo);
                Console.WriteLine("Block Size: " + xATA.BlockSize + " bytes");
                Console.WriteLine("Size: " + xATA.BlockCount * xATA.BlockSize / 1024 / 1024 + " MB");

                //Partition Detecting
                Partition xPartition = null;
                if (BlockDevice.Devices.Count > 0)
                {
                    for (int i = 0; i < BlockDevice.Devices.Count; i++)
                    {
                        var xDevice = BlockDevice.Devices[i];
                        if (xDevice is Partition)
                        {
                            xPartition = (Partition)xDevice;

                            Console.WriteLine("FAT FS");
                            var xFS = new FAT.FatFileSystem(xPartition);

                            Console.WriteLine("Mapping...");
                            Sys.Filesystem.FileSystem.AddMapping("C", xFS);


                            Console.WriteLine();
                            Console.WriteLine("Root directory");

                            var xListing = xFS.GetRoot();
                            FAT.Listing.FatFile xRootFile  = null;
                            FAT.Listing.FatFile xKudzuFile = null;


                            for (int j = 0; j < xListing.Count; j++)
                            {
                                var xItem = xListing[j];
                                if (xItem is Sys.Filesystem.Listing.Directory)
                                {
                                    //Detecting Dir in HDD
                                    Console.WriteLine("<DIR> " + xListing[j].Name);
                                }
                                else if (xItem is Sys.Filesystem.Listing.File)
                                {
                                    //Detecting File in HDD
                                    Console.WriteLine("<FILE> " + xListing[j].Name + " (" + xListing[j].Size + ")");
                                    if (xListing[j].Name == "Root.txt")
                                    {
                                        xRootFile = (FAT.Listing.FatFile)xListing[j];
                                    }
                                    else if (xListing[j].Name == "Kudzu.txt")
                                    {
                                        xKudzuFile = (FAT.Listing.FatFile)xListing[j];
                                    }
                                }
                            }

                            try
                            {
                                Console.WriteLine();
                                Console.WriteLine("StreamReader - Root.txt File");
                                var xStream = new FAT.FatStream(xRootFile);
                                var xData   = new byte[xRootFile.Size];
                                xStream.Read(xData, 0, (int)xData.Length);
                                var xText = Encoding.ASCII.GetString(xData);
                                Console.WriteLine(xText);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Error: " + e.Message);
                            }
                            try
                            {
                                Console.WriteLine();
                                Console.WriteLine("StreamReader - Kudzu.txt File");
                                var xStream = new FAT.FatStream(xKudzuFile);
                                var xData   = new byte[xKudzuFile.Size];
                                xStream.Read(xData, 0, (int)xData.Length);
                                var xText = Encoding.ASCII.GetString(xData);
                                Console.WriteLine(xText);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Error: " + e.Message);
                            }

                            //var xKudzuStream = new Sys.Filesystem.FAT.FatStream(xKudzuFile);
                            //var xKudzuData = new byte[xKudzuFile.Size];
                            //xKudzuStream.Read(xKudzuData, 0, (int)xKudzuFile.Size);

                            try
                            {
                                //Console.WriteLine();
                                //Console.WriteLine("FileStream - Root File");
                                //var xRootFileStream = new System.IO.FileStream(@"c:\Root.txt", System.IO.FileMode.Open);
                                //var xData = new byte[xRootFileStream.Length];
                                //xRootFileStream.Read(xData, 0, (int)xRootFile.Size);
                                //var xText = Encoding.ASCII.GetString(xData);
                                //Console.WriteLine(xText);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Error: " + e.Message);
                            }
                        }
                    }
                }
                else
                {
                    Console.WriteLine("No Block Device Found! ");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e.Message);
            }
        }
コード例 #8
0
ファイル: Kernel.cs プロジェクト: Orvid/Cosmos
        protected override void Run()
        {
            try
            {
                Console.ReadLine();

                Console.WriteLine();
                Console.WriteLine("Block devices found: " + BlockDevice.Devices.Count);

                AtaPio xATA = null;
                for (int i = 0; i < BlockDevice.Devices.Count; i++)
                {
                    var xDevice = BlockDevice.Devices[i];
                    if (xDevice is AtaPio)
                    {
                        xATA = (AtaPio)xDevice;
                    }
                }

                //Info
                Console.WriteLine("--------------------------");
                Console.WriteLine("Type: " + (xATA.DriveType == AtaPio.SpecLevel.ATA ? "ATA" : "ATAPI"));
                Console.WriteLine("Serial No: " + xATA.SerialNo);
                Console.WriteLine("Firmware Rev: " + xATA.FirmwareRev);
                Console.WriteLine("Model No: " + xATA.ModelNo);
                Console.WriteLine("Block Size: " + xATA.BlockSize + " bytes");
                Console.WriteLine("Size: " + xATA.BlockCount * xATA.BlockSize / 1024 / 1024 + " MB");

                //Partition Detecting
                Partition xPartition = null;
                if (BlockDevice.Devices.Count > 0)
                {
                    for (int i = 0; i < BlockDevice.Devices.Count; i++)
                    {
                        var xDevice = BlockDevice.Devices[i];
                        if (xDevice is Partition)
                        {
                            xPartition = (Partition)xDevice;

                            Console.WriteLine("FAT FS");
                            var xFS = new FAT.FatFileSystem(xPartition);

                            Console.WriteLine("Mapping...");
                            Sys.Filesystem.FileSystem.AddMapping("C", xFS);


                            Console.WriteLine();
                            Console.WriteLine("Root directory");

                            var xListing = xFS.GetRoot();
                            FAT.Listing.FatFile xRootFile = null;
                            FAT.Listing.FatFile xKudzuFile = null;


                            for (int j = 0; j < xListing.Count; j++)
                            {
                                var xItem = xListing[j];
                                if (xItem is Sys.Filesystem.Listing.Directory)
                                {
                                    //Detecting Dir in HDD
                                    Console.WriteLine("<DIR> " + xListing[j].Name);
                                }
                                else if (xItem is Sys.Filesystem.Listing.File)
                                {
                                    //Detecting File in HDD
                                    Console.WriteLine("<FILE> " + xListing[j].Name + " (" + xListing[j].Size + ")");
                                    if (xListing[j].Name == "Root.txt")
                                    {
                                        xRootFile = (FAT.Listing.FatFile)xListing[j];
                                    }
                                    else if (xListing[j].Name == "Kudzu.txt")
                                    {
                                        xKudzuFile = (FAT.Listing.FatFile)xListing[j];
                                    }
                                }
                            }

                            try
                            {
                                Console.WriteLine();
                                Console.WriteLine("StreamReader - Root.txt File");
                                var xStream = new FAT.FatStream(xRootFile);
                                var xData = new byte[xRootFile.Size];
                                xStream.Read(xData, 0, (int)xData.Length);
                                var xText = Encoding.ASCII.GetString(xData);
                                Console.WriteLine(xText);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Error: " + e.Message);
                            }
                            try
                            {
                                Console.WriteLine();
                                Console.WriteLine("StreamReader - Kudzu.txt File");
                                var xStream = new FAT.FatStream(xKudzuFile);
                                var xData = new byte[xKudzuFile.Size];
                                xStream.Read(xData, 0, (int)xData.Length);
                                var xText = Encoding.ASCII.GetString(xData);
                                Console.WriteLine(xText);
                            }
                            catch (Exception e)
                            {
                                Console.WriteLine("Error: " + e.Message);
                            }

                            //var xKudzuStream = new Sys.Filesystem.FAT.FatStream(xKudzuFile);
                            //var xKudzuData = new byte[xKudzuFile.Size];
                            //xKudzuStream.Read(xKudzuData, 0, (int)xKudzuFile.Size);

                            try
                            {
                                //Console.WriteLine();
                                //Console.WriteLine("FileStream - Root File");
                                //var xRootFileStream = new System.IO.FileStream(@"c:\Root.txt", System.IO.FileMode.Open);
                                //var xData = new byte[xRootFileStream.Length];
                                //xRootFileStream.Read(xData, 0, (int)xRootFile.Size);
                                //var xText = Encoding.ASCII.GetString(xData);
                                //Console.WriteLine(xText);
                            }
                            catch(Exception e)
                            {
                                Console.WriteLine("Error: " + e.Message);
                            }
                        }
                    }
                }
                else
                {
                    Console.WriteLine("No Block Device Found! ");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e.Message);
            }
        }