Herkese merhabalar,
Formattan sonra bilgisayarıma Office 2021'i kurmak için tekrar indirdiğimde dosyanın .img olduğunu fark ettim. Bu disk imajı dosyası ya herhangi bir yazdırma programı ile diske yazdırıldıktan sonra okunuyor ya da mount (bilgisayara disk takmış gibi) yapılarak bağlanıyordu. Ben de bu iki yöntem dışında bir yöntem olup olmadığını araştırırken img dosyasını .iso'ya convert edebilecek bir kod yazıp yazamayacağıma baktım bu şekilde bir kod yazılabildiğini görünce .img dosyasını .iso'ya çevirecek bir kod yazdım. Kullanmak isteyen arkadaşlar için de sunmak istedim.
Burada uygulamanın amacı .img>.iso formatına çevirmek sonrasında da bilgisayardaki winrar veya başka programlar yardımıyla doğrudan masaüstüne çıkarıp kuruluma başlayabilmek.
Uygulama basit bir windows konsol uygulaması C# diliyle kodlandı, yazılım konumdaki .img uzantılı dosyayı tespit edip aynı ad ile .iso formatına çeviriyor. Yani uygulamanın doğru dosyayı çevirmesi için bir klasör oluşturmalı .img dosyası ve çevirici uygulamayı bir klasör içinde tutmalısınız.
Uygulamayı indirmek için:
Virüstotal sonuçları :
https://www.virustotal.com/gui/file/a24d9357f2a9403e5e9fe7ae053f0f05d72663bcadbe17e89e40f164ca276cf1?nocache=1

Uygulamayı .img dosyam ile yan yana koydum, şimdi sıra çalıştırmakta.

Dosyayı çalıştırdığım gibi uygulama otomatik olarak çevirmeye başlıyor ve çevirmede hangi aşamada olduğunu anlık olarak ekrana yazıyor.

Evet, görüldüğü gibi iki tık ile .img dosyasını .iso'ya çevirdik ve artık arşiv uygulamaları ile kolay bir şekilde içindekilere erişebiliyoruz.
Meraklısı için kodları :
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// Geçerli çalışma dizinini alır.
string currentDirectory = Directory.GetCurrentDirectory();
// Geçerli dizindeki tüm .img uzantılı dosyaları alır.
string[] imgFiles = Directory.GetFiles(currentDirectory, "*.img");
// Eğer .img uzantılı dosya bulunamazsa, bir mesaj yazdırır ve programdan çıkar.
if (imgFiles.Length == 0)
{
Console.WriteLine("Bu uygulama, .img dosyasını .iso formatına dönüştürmek için kullanılır.");
Console.WriteLine("Aynı dizinde .img uzantılı dosya bulunamadı.");
return;
}
// İlk bulunan .img dosyasının yolunu ve dosya adını alır.
string imgFilePath = imgFiles[0];
string imgFileName = Path.GetFileName(imgFilePath);
// Çıkış dosyasının yolunu .iso uzantılı olarak değiştirir.
string outputIsoFile = Path.ChangeExtension(imgFilePath, ".iso");
try
{
// .img dosyasının toplam boyutunu alır.
long totalBytes = new FileInfo(imgFilePath).Length;
long copiedBytes = 0;
const int bufferSize = 1024 * 1024; // 1 MB
const int progressBarLength = 20;
// .img dosyasını okumak için bir dosya akışı açar.
using (FileStream imgStream = File.OpenRead(imgFilePath))
{
// .iso dosyasını oluşturmak için bir dosya akışı açar.
using (FileStream isoStream = File.Create(outputIsoFile))
{
byte[] buffer = new byte[bufferSize];
int bytesRead;
// Dosyayı parça parça okuyup yazar.
while ((bytesRead = imgStream.Read(buffer, 0, bufferSize)) > 0)
{
isoStream.Write(buffer, 0, bytesRead);
copiedBytes += bytesRead;
double progressPercentage = (double)copiedBytes / totalBytes * 100;
// İlerleme durumunu görsel olarak günceller.
int progressLength = (int)(progressBarLength * progressPercentage / 100);
string progressBar = new string('+', progressLength).PadRight(progressBarLength);
// İlerleme durumunu konsola yazdırır.
Console.Write($"\rİlerleme: [{progressBar}] {progressPercentage:F2}% ");
}
// Son durumu temizler.
Console.WriteLine();
}
}
// Başarılı dönüşüm mesajını yazdırır.
Console.WriteLine($"{imgFileName} dosyası {outputIsoFile} olarak başarıyla dönüştürüldü.");
}
catch (Exception ex)
{
// Hata durumunda hata mesajını yazdırır.
Console.WriteLine("Hata: " + ex.Message);
}
}
}