C# – File Info Writer (Dosya Bilgi Yazıcı)

Hoşgeldin düzen, rahatlık, kolaylık 🙂 Belki bu kelimeler ilk satırda birşey ifade etmiyor ama ilerleyen satırlarda çok anlam ifade edeceğine inanıyorum. Bir süredir üzerinde çalıştığım bir uygulamayı dün akşam itibariyle bitirmenin mutluluğunu yaşıyorum. Peki ne mi bu uygulama? Aslında isminden az çok belli olsada bu uygulamayı tam anlatmaya yetmiyor..


Bir klasör hiyerarşisi yazıcısı, kaydedicisi 🙂 Peki bu ne demek. Aslında uygulamanın yaptığını kısaca anlatsam daha mantıklı olacaktır. File Info Writer uygulaması ile seçtiğiniz bir klasör’ün tüm alt klasör ve dosyaları ile hiyerarşisini ekranda ağaç yapısında görebildiğiniz bir uygulama.


Peki gördükte ne oldu zaten klasörü açıyorum ve görüyorum 🙂 dediğinizi tahmin ediyorum. Aslında bu uygulamayı geliştirmemdeki amaç veri depolamamda bana yardımcı olması içindir. Şöyle ki gerek bilgisayarımda olsun(hard disk’im full dolmuş :)) gerekse de cd çantamda olsun. Bir sürü cd ve hatta dvd var. Bir süre sonra hangi cd ya da dvd ‘de hangi uygulamalarınızın olduğunu unutmaya başlıyorsunuz. Cd ya da dvd ‘yi takıp içine bakmak ise üşengeçlik hattını aşamadığınızdan pek hevesli gelmiyor. Hadi bu hattı aştınız diyelim. Peki bir sürü cd ya da dvd ‘den kaç tanesine bakacaksınız. Bu iş zamanla sinir ,stres oranını biraz arttırıyor. 🙂 Bu konuda kendime kolaylık getirmesi açısından bir uygulama geliştirmeye karar verdim ve sonunda bu ürün çıktı.


Uygulama, yukarıda da belirttiğim gibi seçtiğiniz bir klasör’ü içindeki klasör ve dosya hiyerarşisi ise bir ağaç yapısında görüntülemenizi sağlıyor. Bu yapıyı, bir “açıklama” yazısı ile uygulamanın veritabanına kaydedebiliyorsunuz. Sonradan bu klasör’ü cd ya da dvd ‘ye yazdırdığınızda bu “açıklama” ifadesini cd ya da dvd yüzeyine yazaraktan, cd ya da dvd ‘yi etiketlemiş oluyorsunuz. Bundan sonra ise çantaya attığınız bu cd ya da dvd ‘yi çantaya uğramadan 🙂 içinde hangi dosyaların olduğunu hatta hangi klasör altında olduğuna kadar görebiliyorsunuz. Verdiğiniz “açıklama” ifadeleri ile istediğiniz kadar cd ya da dvd içeriğini uygulama veritabanına atabilirsiniz. Sonra da arama kısmını kullanarak, aradığınız dosyaların hangi “açıklama”(etiketli) cd ya da dvd ‘de olduğunu görebilirsiniz.


Buraya kadar herşey güzel ve benim sorunlarımı bir nebze olsa rahatlatıyor. Ama benim istediğim daha fazlasıydı 🙂 Bu nedenle daha çok özellik ekledim. 🙂 Bunlardan biri şu ki, mesela bu program yok ve elimde cd ya da dvd çantam var. Peki ben nasıl bileceğim. Hangi cd ya da dvd’imde aradığım uygulamanın olduğunu, tabii burada cd ya da dvd ‘ye verdiğiniz etiket(isim) bir yere kadar tahmin etmenizi sağlayabilir. Fakat birden fazla “Program Arşivi” ismiyle etiketlediğiniz cd ya da dvd ‘lerinizde hangisinde hangi uygulamanın olduğunu nereden hatırlayacaksınız. Tabii bu benim gibi bol bol uygulama kullananlar için geçerli 🙂 İşte bunu da düşünerek uygulamaya bir de WORD dökümanına, seçili klasör hiyerarşisini yazan bir özellik ekledim. Bu işlem ile görüntülediğiniz klasör hiyerarşisini bir Word dökümanına aktarabiliyorsunuz. Bu aktarma sonrasında ise, size sadece “Yazdır” demek kalıyor. Word dökümanını yazdırıp cd çantanızda cd ya da dvd nizin yanına koyabilirsiniz. 🙂 Bu da benim sorunlarımı tamaiyle çözüyor.


Eklediğim ufak birkaç özellik daha mevcut bunlar;

  1. Kaydettiğiniz hiyerarşilerden istediğinizi kaldırabilmeniz.
  2. Kaydettiğiniz hiyerarşilerden istediğiniz dosya ya da klasör bilgisini kaldırabilmeniz.
  3. Veritabanı verilerinizin tümünü silebilmeniz.
  4. Kaydettiğiniz tüm hiyerarşilerin grafiğini ve hangisinde kaç dosya olduğunu görebilmeniz.
  5. Veritabanı yedeğini alabilmeniz.

Ayrıca uygulama tamamen açık kaynak kodludur. Yani yazılım ile ilgilenen arkadaşlar içinde eğitici ve üzerinde değişiklik yapıp yeni özellikler ekleyip çıkarabilecekleri bir şekilde aşağıdan indirebilirsiniz.

Uygulama Kaynak Kodları :

http://cid-f2e617aff724ee2b.skydrive.live.com/embedrowdetail.aspx/Video%20Derslerim/Applications/FileInfoWriterSolution.rar


Uygulamanın Setup Dosyası :
http://cid-f2e617aff724ee2b.skydrive.live.com/embedrowdetail.aspx/Video%20Derslerim/Applications/FileInfoWriterInstaller.rar


Uygulamayı Anlatan Video :
http://cid-f2e617aff724ee2b.skydrive.live.com/embedrowdetail.aspx/Video%20Derslerim/Applications/FileInfoWriter.wmv

Reklamlar

IPod – Kısa Süreline IPod’u İşgal Eden Uygulamalar – 1

  1. TwoUp : IPod hassasiyetini kullanarak bir çift parayı havaya fırlatıp çift yazı , çift tura geldikçe sevineceğiniz bir uygulama.
  2. Im+ Messenger : Sürekli çöken, tam msj yazarken çöken, duruken çöken tüm sohbet uygulamalarını destekleyen gereksiz ve boşa zaman kaybı bir uygulama.
  3. Fring : Bazılarınca popüler olan , asla vazgeçilmez olan fakat daha iyisini görünce anında terkedilebilen , farklı hesaplardaki sohbet uygulamalarını destekleyen uygulama. (Bence tek artısı ; Fring yüklü başka bir IPhone ile Skype gibi internet üzerinden ücretsiz konuşabilme.)
  4. YouNote : IPhone sahiplerinin daha çok işine yarayacak bir resim çekme saklama, ses kaydetme saklama ve not kaydedip saklama uygulaması.
  5. EveryNote : Internet’e bağımlı bir not saklama uygulaması. Internet yoksa notlarınızı göremezsiniz bile.

Yeni uygulamaları tanıdıkça tekrar açıklayacağım..

XLINQ – Binding XDocument To Treeview on Windows Application

Elimizde bulunan XML dosyanın TreeView kontrolüne hiyerarşisinin aktarılması. Örnek bir XML dosya oluşturuyoruz..



Oluşturacağımız 2 adet metod olacaktır. Kullanacağımız metoda Xml dosyanın Root Element’ini ve “TreeView” kontrolünü vereceğiz. “ReadXmlFile” butonuna tıklanınca Xml dosya okunur ve “FillTree” metodu çalıştırılır..

private void btnReadXmlFile_Click(object sender, EventArgs e)
{
XDocument xDoc = XDocument.Load(“..\\..\\XMLFile1.xml”);
FillTree(xDoc, this.treeView1);
}

private void FillTree(XDocument xDoc, TreeView treeViewControl)
{
if (xDoc != null)
{

if (treeViewControl != null)
{

XElement rootElement = xDoc.Root;

if (rootElement != null)
{

this.treeView1.Nodes.Add(this.AddNodeToRootTreeNode(rootElement, null));

}
}
}
}

private TreeNode AddNodeToRootTreeNode(XElement element, TreeNode treeNode)
{

if (treeNode == null)

treeNode = new TreeNode(element.Name.LocalName);

foreach (XElement xElement in element.Elements())
{

TreeNode childTreeNode = new TreeNode(xElement.Name.LocalName);
treeNode.Nodes.Add(childTreeNode);

if (xElement.HasElements)
this.AddNodeToRootTreeNode(xElement, childTreeNode);

}

return treeNode;

}


Sonuç;



Kodumuzda bulunan “FillTree” metodunda bulunan aşağıdaki kod satırında dikkat edilmesi gereken bir nokta vardır..

this.treeView1.Nodes.Add(this.AddNodeToRootTreeNode(rootElement, null));

TreeNode” parametresi “null” olarak verilmiştir. bu sayede Root elementinin TreeNode’ıda otomatik oluşturulmaktadır. Bu satırda “null” ifadesi yerine verilen herhangi bir TreeNode parametresi ile Xml dosya hiyerarşisinin, parametre olarak verilen “TreeNode” altında hiyerarşisinin oluşturulması sağlanabilir..

VB – Property Binding ile Uygulama Ayarlarını Kaydetme

Yazdığımız uygulamalarda olmazsa olmaz şeylerden biride, kullanıcının yaptığı ayarların saklanması ve programın bu ayarlara göre başlamasıdır. Hatta kullanıcı istediği zaman bu ayarları “Default”(Varsayılan – ilk kurulum anına) çevirebilmelidir. İşte bu işlevi kolaylıkla yapabilmemiz için Microsoft amca bize Property Binding ile güzel bir kolaylık sağlamış. Kullanımı çok kolay ve eğlenceli J

Her kontrolün “Properties” penceresinde bulunan “Application Settings” altındaki “Property Bindings” kısmından o kontrol’ ün istediğiniz özelliğine bir “Default Value”(Başlangıç Değeri) atayabilirsiniz..

Bunun avantajı programda yapılan kullanıcı ayarlarının saklanabilmesi ve başlangıç ayarlarına dönüşümün kolaylaşmasıdır.. Ayrıcada derleme yapmadan kontrol başlangıç değerinin (“Default Value”) değiştirilebilir olmasıdır..

Olayı biraz resimlendirirsek;

Şekildeki gibi bir form oluşturdum..

Makaleyi yükle