Günümüzde insanların genel ihtiyaçlarına göre aralarında farklılık gösteren yüzlerce yazılmış program vardır. Otomasyon sistemleri, müzik sistemleri ve çizim tasarımları için birçok alanda programlar yazılmaktadır. Yeri geldiğinde programların içerisine müdahale etmek güç olmaktadır.İstenilirse bu derlenmiş programların içerisine farklı uzantılarda dosyalar kaydedilebilir ve belli amaçlar doğrultusunda işlendikten sonra okunabilir. Bugün C# Windows Form Uygulaması üzerinden, yazdığımız programın içerisine dosyalarımızı kalıcı hale getirmeyi öğreneceğiz. Hemen programa geçelim.

1. Öncelikle gömmek istediğimiz dosyayı program içerisine “Binary” olarak yazıp, okumamız ve elde edilen  değerleri organize etmemiz için iki adet .NET Framework kütüphanesine ihtiyacımız var.

2. Solution Explorer” aracı içerisinden C# projemize sağ tıklayıp “Add” seçeneğinden “New Folder” kısmını seçelim ve bir klasör açalım.

resim2

Şekil 1. Dosya Klasörünün Açılması

3. Oluşturduğumuz klasör içerisine dosyalarımızı sürükleyelim. (Üç farklı dosya türü tercih ettim.) Bununla birlikte gömme işlemi için dosyalarımızı program derleyicisine tanıtmamız gerekiyor. Dosyalarımızı seçerek “Properties” aracından “Build Action” sekmesinden “Embedded Resources” olarak seçilmelidir.

resim3

Şekil 2. Dosya Ekleme ve Build Action Ayarları

4. Programlama aşamasına geldik. Öncelikle bir fonksiyon oluşturalım ve erişimi “private static void” olarak ayarlayalım. İçerisine üç adet değişken tanımlamamız gerekiyor. (Kod kirliliği yaratmamak için tek seferde fonksiyonu çağırıp işlemlerimizi bir an önce görebilelim.) “assembly” değişkenimiz ile dosyamızın “Assembly” dökümünü almamız gerekiyor. Daha sonra “Assembly” değerlerimizi okuyacak olan “BinaryReader” ile bir değişken tanımlıyoruz. Dosyaları istediğimiz dizine oluşturmak (“FileStream“) için okunan değerlerin doğru bir dizilimle yazılması gerekiyor(“BinaryWriter“).

  • Assembly : Gömülecek dosya için çağrılan sınıf.
  • GetCallingAssembly() : Assembly için tanımlanan değişkeni çağırır.
  • GetManifestResourceStream() : Gömülecek dosyayı çağırır.
  • Stream : Gömülecek dosyanın byte değerlerini okuyan sınıf.
  • FileStream : Gömülen dosyanın dışardan okunmasını sağlayan sınıf.
  • FileMode : Dosyanın için aç veya yaz iznini verir.
  • BinaryReader : Stream’dan binary veriyi okur.
  • BinaryWriter : Binary veriyi Stream’a yazar.

5. Şimdi ise fonksiyonumuz ile oluşturacağımız Form arayüzünden bir buton aracılığı ile  gömdüğümüz dosyaları programdan çağıralım.

Not: Program çıktısının bulunduğu “Dosyalar” klasörünü silip, yazmış olduğunuz kodun sağlamlığını test edin. 2. ve 3. koşulları dikkate alın. Aksi takdirde tanıttığınız dosya “null” değer döndürecektir. Son olarak yazma işlemini “Dispose”  ederek RAM belleğe yazmayı durdurun.

Makalemin sonuna geldik. Bir sonraki yazılım konulu makalemde görüşmek üzere…

Program İndir

Erhan ULMAN

1995 doğumlu, Kocaeli Üniversitesi Mekatronik Mühendisliği Öğrencisi, NEFES Doğa Kulübü Yöneticisi. #android #csharp #teknoloji #bilişim #astronomi

Yanıt Bırak

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir