C# dosya tarihlerini değiştirme

Serhat tarafından yazılmıştır. 30. Aralık 2008 18:12

Dosya işlemleri yapılan bir uygulamada üzerinde çalışılan dosya  üzerindeki oluşturulma,değiştirilme tarihi gibi bilgilerini kullanma ihtiyacı olabilir.Hatta bu bilgilere yeni bilgiler eklenilmesi durumuda söz konusu olabilir.C#'da bu işlemi yapmak için  System.IO namespace'inin altında bulunan File sınıfının metotlarını kullanacağız.Bu sınıfta bulunan en sık kullanılan metotlar;

-GetCreationTime() : Dosyanın oluşturulma tarihini getirir.

-GetLastWriteTime() : Dosyanın son değiştirilme(üzerine yazılması) zamanını getirir.

-GetLastAccessTime() : Dosyanın erişim tarihini getirir.

-SetLastWriteTime() : Parametresine string olarak aldığı dosyanın ikinci parametresinde belirtilen tarihi değiştirilme alanına yazar.

-SetLastAccessTime() : Parametresine verilen dosyanın son erişim tarihini değiştirmek için kullanılır.

-SetCreationTime() : Parametresinde belirtilen dosyanın oluşturulma tarihini değiştirmek için kullanılır.

Bu 6 metot ile bir dosyanın Oluşturulma,değiştirilme,erişim tarihlerini elde ettiğimiz gibi bu değerleride kullanıcı belirleyebiliyor.

c# tarih değiştirme

Yukarıda bir dosyanın oluşturulma,değiştirilme ve erişim tarihleri gözükmektedir.Şimdi birkaç işlem yaparak bu bilgileri değiştirelim.Örneğimizin arayüzü aşağıdaki gibidir.

c# tarih işlemleri

Kodları aşağıdadır.Programı çalıştırarak mesela 3 bilgiyide test etmek için 13 Eylül 2008 Cumartesi yapalım.13 Eylül doğum günümdür :)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO; // Dosya bilgilerini okumak ve yazmak için kullandığımız namespace

namespace DosyaOzellikleri
{
    public partial class Form1 : Form
    {
        //secilen dosyanın yolunu tutan değişkenimiz
        string dosyaYol;
        public Form1()
        {
            InitializeComponent();
            dosyaYol = "";
        }

        private void btnDosyaSec_Click(object sender, EventArgs e)
        {
            //DialogResult tipinden bir değişkenimiz açtığımız openFile'ın durunumu tutabilir.
            DialogResult sonuc = openFileDialogDosyaSec.ShowDialog();

            //Eger sonuc değişkenindeki deger yani dialogResult OK ise if blogu çalışır.
            if (sonuc == DialogResult.OK)
            {
                btnKaydet.Enabled = true;
                dosyaYol = openFileDialogDosyaSec.FileName;
                lblDosyaYol.Text = "Dosya Yol : " + dosyaYol;

                //Formumuzda 3 adet DateTimePicker var.Bunlar seçtiğimiz dosyanın değerini gösterecektir.File sınıfının Get ile başlayanları seçilen dosyanın özelliklerini getirir.GetCreationTime metodu parametre olarak aldığı dosya yolunun oluşturulma tarihi alıp DateTimePicker nesnemizin value'sına o tarihi atmaktadır.Diğer iki işlemde aynıdır.
                dtOlusturulmaTarihi.Value = File.GetCreationTime(dosyaYol);
                dtDegistirilmeTarihi.Value = File.GetLastWriteTime(dosyaYol);
                dtErisimTarihi.Value = File.GetLastAccessTime(dosyaYol);
            }
        }

        private void btnKaydet_Click(object sender, EventArgs e)
        {
            //Kaydet butonuna basıldğında dosya yolu boş değilse ve diger 3 checkBox'lardan herhangi biri işaretli ise çalışacak olan if blogumuz.
            if (dosyaYol != "" && cbDegistirilme.Checked || cbErisim.Checked || cbOlusturulma.Checked)
            {
                //bu try blogumuzda işaretlenen cb'ye ait tarih bilgisini dosyanın o seçilen değerine atıyoruz.Get diyerek nasıl değerleri oluyorsak bu seferde Set diyerek atama yapılacak metodu seçiyoruz ilk parametresine dosyanın tam yolunu ikinci parametresinede yazılacak olan tarihi belirtiyoruz.
                try
                {
                    if (cbDegistirilme.Checked)
                    {
                        File.SetLastWriteTime(dosyaYol, dtDegistirilmeTarihi.Value);
                    }
                    if (cbErisim.Checked)
                    {
                        File.SetLastAccessTime(dosyaYol, dtErisimTarihi.Value);
                    }
                    if (cbOlusturulma.Checked)
                    {
                        File.SetCreationTime(dosyaYol, dtOlusturulmaTarihi.Value);
                    }
                   
                    //GErekli combo'lar işaretlenirse mesaj veriyoruz kayıt edildi diye.
                    MessageBox.Show("Belirtilen ayarlar başarıyla değiştirildi", "Mesaj", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                catch
                {
                    MessageBox.Show("Hata oluştu", "Uyarı", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
            //herhangi bir checkBox işaretlenmemiş veya dosya yolu boş ise bu else blogu çalışacaktır.
            else
            {
                MessageBox.Show("Değiştirmek istediğiniz işlemleri seçiniz","Uyarı",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            btnKaydet.Enabled = false;
        }
    }
}

Programımızdan dosyamızı seçip o dosyanın bilgileri gelmekteydi.Şimdi belirtmek istediğimiz tarihleri girelim ve hepsinin değişmesini istediğimizden 3 özelliğinde checkBox'ını işaratleyerek değişmesini istediğimizi programımıza belirtiyoruz aşağıdaki gibi ve Kaydet butonuna basıyoruz..

c# tarih okuma

Dosyamızın tarihlerini belirttikten sonra şimdi artık gidip seçtiğimiz dosyanın özelliklerine bakabiliriz.Görüldüğü gibi istediğimiz tarihleri dosyamıza bildirmiş oluyoruz.

c# File

Örnek projeyi indirmek için

Faydalı olması dileğiyle iyi çalışmalar :)

Serhat TAŞ

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

C# & .NET

Yorumlar

Yorum ekle


(Gravatar simgesini gösterecek)  

biuquote
  • Yorum
  • Canlı önizleme
Loading



Powered by BlogEngine.NET 1.4.5.0
Bu tema Mads Kristensen tarafından yapılmıştır ve Türkçeleştirilmesi Blog Engine Türkiye ekibi tarafından yapılmıştır.

Son Yorumlar

Comment RSS

Yasal Uyarı

Bu sitede sunulan tüm bilgi ve dökümanların kullanımından ve sitede yapılan kullanıcı yorumlarından (siyasi içerik,hakaret vb.) doğacak sorunlardan yazar sorumlu tutulamaz. 

İçeriğin kaynak belirtilmeden kopyalanması yasaktır !

SERHAT TAŞ

© Copyright 2010