16 Haziran 2009 Salı

PyS60 ile Dosya Tarayıcısı

Merhabalar,

Birkaç gündür Symbian Python'u inceliyorum çok yakında bu konuda ayrıntılı dökümanlar yazacağım...
Bu yazıda Symbian telefonlar için çok çok basit bir dosya tarayıcısı yazacaz...

Lafı fazla uzatmadan anlatmaya geçelim,

Modülümüzü import ediyoruz ve uygulamanın başlığını ayarlıyoruz...

import os
from appuifw import *

app.title = u"Dosya Tarayicisi"



while True:
liste = [u"x Cikis", u"< Geri"]
for i in os.listdir(os.getcwd()): liste.append(unicode(i))

Bu kısımda dizin içeriğini alıyoruz ve tüm içeriği unicode şeklinde listeye ekliyoruz (telefonda utf-8 kullanılması gerektiği için)

döngüye devam ediyoruz...

i = selection_list(liste, 1)
if liste[i] == u"x Cikis": break;
elif liste[i] == u"< Geri":
os.chdir("/".join(os.getcwd()[:-2].split("/")[:-1]) + "//")
continue;
else: os.chdir("%s%s" % (os.getcwd(), liste[i]))

Bu kısımda selection_list ile dizini listeliyoruz bu fonksiyon seçilen elamanın listedeki indexini verir...
(örneğin; ilk eleman seçildiyse 0 döndürür)
ayrıca selection_list raw_input gibidir uygulamayı bekletir bir eleman seçildiğinde değerini döndürür ve kod aşağıya doğru devam eder...

daha sonraki işlemler ise seçilen elemanlar neyse ona göre işlem yapılıyor, Geri işlemi ise bulunulan dizinin son kısmı silinerek yapılıyor...

ve eğer "geri" veya "cikis" seçilmediyse bulunulan_dizin + secilen_dizin e giriliyor, ve tekrar listeleme yapılıyor bu şekilde döngü devam ediyor...

Ve son olarak kodun tamamı,

# -*- coding: utf-8 -*-
# s60 dosya tarayıcısı denemesi
# coded by rohanrhu

import os
from appuifw import *

app.title = u"Dosya Tarayicisi"

while True:
liste = [u"x Cikis", u"< Geri"]
for i in os.listdir(os.getcwd()): liste.append(unicode(i))

i = selection_list(liste, 1)
if liste[i] == u"x Cikis": break;
elif liste[i] == u"< Geri":
os.chdir("/".join(os.getcwd()[:-2].split("/")[:-1]) + "//")
continue;
else: os.chdir("%s%s" % (os.getcwd(), liste[i]))

5 yorum:

  1. bu kodları pc üzerinde deneyebilmek için bir emulatör similatör var mıdır?

    YanıtlayınSil
  2. Emulatör konusunu araştırdım yok sanırım.

    YanıtlayınSil
  3. SDK diye birşey var ama muhtemelen windowsta çalışır. Pardusta çalıştırmayı denemedim denemeyi de düşünüyorum

    YanıtlayınSil
  4. windowsta çalışan sdk var hatta tüm modülleri çalıştırmayı başardık
    pardusta winliteyi kullanıp çalıştırılabilir yeter ki isteyin çözüm kolay :D

    YanıtlayınSil
  5. winlite mi o da ne? Wine var ama winlite'yi yeni duydum!

    YanıtlayınSil