Yavuz Selim Bilgin

Blog

E-Posta

ysb [at] ysbilgin.com

Android’de Klasörün Boyutunu Bulmak

11 Mart 2012
public static long dirSize(File dir) {

		long result = 0;
		try {
			File[] fileList = dir.listFiles();

			for (int i = 0; i < fileList.length; i++) {
				// Recursive call if it's a directory
				if (fileList[i].isDirectory()) {
					result += dirSize(fileList[i]);
				} else {
					// Sum the file size in bytes
					result += fileList[i].length();
				}
			}
		} catch (Exception ex) {
		}
		return result; // return the file size
	}

Derleyici ve IDE Arasındaki Fark

28 Mart 2011

Derleyici ve IDE kavramları sıklıkla karıştırılıyor, bugün Friendfeed’de gördüğüm bir feed üzerine bu yazıyı yazmaya karar verdim.

IDE-Integrated Development Environment’ın kısaltması. Tümleşik Geliştirme Ortamı olarak çevirebiliriz Türkçe’ye. Yani içinde “syntax highlighting” özelliği bulunan bir kod editörü, debug-trace için yardımcı araçlar vs. bulunan tümleşik bir ortam. Derleyici ise bir programlama dilinde yazılmış programı makine koduna veya ara koda (Java-.net) dönüştüren programcık. Şüphesiz IDE’ler derleyicilerle beraber çalışır. Siz Eclipse’de basit bir kod yazıp çalıştır dediğinizde Eclipse arka planda yazdığınız kodu javac ile derler ve çıktısını kendi konsolunda size gösterir.

javac, en popüler java derleyicisi. Sun’ın JDK’sını kullanıyorsanız siz de javac kullanıyorsunuz demektir. Bunun yanında gjc (GNU Java Compiler) gibi derleyiciler de mevcut. Java derleyicileri ile ilgili wikipedia’da detaylı bilgi mevcut. Eclipse, Netbeans, IntelliJ Idea vs. ise popüler Java IDE’leri.

C# kodu yazıyorsanız muhtemelen kodu Visual Studio’da yazıp F5 tuşuna basarak çalıştırıyorsunuz ancak c#’ın da csc adında bir derleyicisi var. .Net kurulum dizininde csc.exe adında bulabilirsiniz. Kullanımı ve mantığı javac ile aynı.

Konuyla ilgili iki link:

http://en.wikipedia.org/wiki/Integrated_development_environment

http://en.wikipedia.org/wiki/Compiler

Python ile Ziple ve Ftp’ye Yükle

26 Şubat 2011

Uzun zaman önce istediğim klasörleri periyodik olarak zipleyip belirttiğim ftp adresine yükleyecek bir programcık yazmam gerekti. Doğal olarak Java veya c# ile yazacakken aklıma bir zamanlar bir gece biraz kurcalayıp daha sonra bir türlü aktif olarak kullanamadığım Python geldi. Bir klasörü zipleyip upload etmenin pythonla çok kolay olacağını düşündüm ve haklıydım da. Hemen gerekli araştırmayı yapıp aşağıdaki kod parçasını yazdım. Python uzmanı değilim, kodda hatalar olabilir ve geliştirilebilir. İhtiyaç duyanlara örnek olması açısından paylaşıyorum…

# -*- coding: utf-8 -*-

import zipfile

import glob, os

import ftplib

import sys







ziplenecekDosya=raw_input("Lütfen arşivlenecek klasör yolunu giriniz: ")

arsivDosyasi=raw_input("Lütfen arşiv dosyası yolunu giriniz: ")

#önce arşiv dosyasını oluşturup write modunda açıyoruz

try:

    file=zipfile.ZipFile(arsivDosyasi, "w")

    print "Arşiv oluşturuldu..."

except:

    print "Arşiv dosyası açılırken hata oluştu!"

    sys.exit()



#sonra da dosyaları arşive atıyoruz,

try: 

    dosyalar=[]

    for name in glob.glob(ziplenecekDosya+"*"):

        file.write(name,os.path.basename(name),zipfile.ZIP_DEFLATED)

        dosyalar.append(os.path.basename(name))

        print "Dosya eklendi: "+os.path.basename(name)

except:

    print "Dosyalar arşiv dosyasına eklenirken hata oluştu!"

finally:

    try:

        file.close()

    finally:

        print "Bu kadar..."

        

s=ftplib.FTP("host", "user", "passwd")



f=open(arsivDosyasi,'rb')

s.cwd("public_html")

s.storbinary('STOR '+arsivDosyasi,f)



f.close()

s.quit()
Android

Android-Locale Değiştirme

14 Kasım 2010

Android için uygulama hazırlarken kullanıcının telefonunun locale ayarı ne olursa olsun siz Türkiye ayarlarınıkullanmak isteyebilirsiniz. En basit örneği siz bir tarihi “dd MMMM yyyy” olarak formatladığınızda telefonun locale ayarı “en” ise 14 November 2010 gibi bir sonuç alacaksınız. Ancak siAndroidz kullanıcı telefonunu isterse Çince kullansın “November” yerine “Kasım” yazmasını istiyorsunuz. Bunu uygulama bazında locale ayarını değiştirerek yapabilirsiniz.

Şöyle ki;

Activity’nin onCreate metoduna veya ihtiyacınızın olduğu yere;

Locale lokal=new Locale("tr");
Locale.setDefault(lokal);

satırlarını eklerseniz uygulama artık telefonun locale ayarı “tr” imiş gibi davranacaktır.

Bazı kaynaklarda bunun geçerli olması için manifest dosyanıza her activity için

android:configChanges="locale"

ifadesini eklemek gerekiyormuş ancak ben bunu eklemeden çalıştığını 1.6 ve 2.2 üzerinde test ettim. Belki dil için değil ancak başka ayarlar için gerekiyor olabilir.

Kaynak: http://adrianvintu.com/blogengine/post/Force-Locale-on-Android.aspx

Older Posts