public void ImageFileDisposeFlushes() { string filename = System.IO.Path.GetTempFileName(); DiskImage disk = new DiskImage(); Assert.AreEqual(true, disk.CreateImage(filename)); disk.Format("Name", "1"); IImageFile file = disk.Open("TEST", C64FileType.PRG, "wb"); Assert.IsNotNull(file); byte[] data = Encoding.ASCII.GetBytes("This is some sample data!"); Assert.AreEqual(data.Length, file.Write(data, data.Length)); file.Dispose(); disk.Dispose(); DiskImage disk1 = new DiskImage(); Assert.AreEqual(true, disk1.LoadImage(filename)); IImageFile file1 = disk1.Open("TEST", C64FileType.PRG, "rb"); Assert.IsNotNull(file1); byte[] data1 = new byte[100]; Assert.AreEqual(25, file1.Read(data1, 100)); byte[] trucatedData = new byte[25]; Array.Copy(data1, trucatedData, 25); Assert.AreEqual("This is some sample data!", Encoding.ASCII.GetString(trucatedData)); file1.Close(); disk1.Dispose(); System.IO.File.Delete(filename); }
private void loadFromStream(Stream stream) { if (stream.Length < 15) { Locator.Resolve <IUserMessage>() .Error("HOBETA loader\n\nInvalid HOBETA file size"); return; } byte[] fbuf = new byte[stream.Length]; stream.Seek(0, SeekOrigin.Begin); stream.Read(fbuf, 0, (int)stream.Length); if (fbuf[14] * 256 + 17 != fbuf.Length || fbuf[13] != 0 || fbuf[14] == 0) { Locator.Resolve <IUserMessage>() .Error("HOBETA loader\n\nInvalid HOBETA file!"); return; } bool needFormat = true; if (_diskImage.IsConnected && _diskImage.Present) { var service = Locator.Resolve <IUserQuery>(); var dlgRes = DlgResult.No; if (service != null) { dlgRes = service.Show( "Do you want to append file(s) to existing disk?\n\nPlease click 'Yes' to append file(s).\nOr click 'No' to create new disk...", "HOBETA loader", DlgButtonSet.YesNoCancel, DlgIcon.Question); } if (dlgRes == DlgResult.Cancel) { return; } if (dlgRes == DlgResult.Yes) { needFormat = false; } } if (needFormat) { _diskImage.Format(); } fbuf[13] = fbuf[14]; addFile(fbuf, 0, 0x11); //_diskImage.FileName = "UNKNOWN.$Z"; }
public void OpenANonExistFile() { string filename = System.IO.Path.GetTempFileName(); DiskImage disk = new DiskImage(); Assert.AreEqual(true, disk.CreateImage(filename)); disk.Format("Name", "1"); IImageFile file = disk.Open("TEST", C64FileType.PRG, "rb"); Assert.IsNull(file); System.IO.File.Delete(filename); }
public void CreateWriteLoadReadMultiTrackFile() { string filename = System.IO.Path.GetTempFileName(); DiskImage disk = new DiskImage(); Assert.AreEqual(true, disk.CreateImage(filename)); disk.Format("Name", "1"); IImageFile file = disk.Open("TEST", C64FileType.PRG, "wb"); Assert.IsNotNull(file); byte[] data = new byte[2000]; for (int i = 0; i < 2000; ++i) { data[i] = (byte)(i % 256); } Assert.AreEqual(data.Length, file.Write(data, data.Length)); file.Close(); disk.Dispose(); DiskImage disk1 = new DiskImage(); Assert.AreEqual(true, disk1.LoadImage(filename)); IImageFile file1 = disk1.Open("TEST", C64FileType.PRG, "rb"); Assert.IsNotNull(file1); byte[] data1 = new byte[3000]; Assert.AreEqual(2000, file1.Read(data1, 3000)); byte[] trucatedData = new byte[2000]; Array.Copy(data1, trucatedData, 2000); for (int i = 0; i < 2000; ++i) { Assert.AreEqual(i % 256, trucatedData[i]); } file1.Close(); disk1.Dispose(); System.IO.File.Delete(filename); }