HarmonyOS File Storage Kullanımı

Berk Özyurt
Huawei Developers - Türkiye
5 min readNov 16, 2021

Herkese merhaba,

Bu yazımda sizlere Huawei’nin geliştirdiği yeni işletim sistemi olan HarmonyOS ile bir akıllı saat için file storage özelliği kullanan uygulamaların nasıl geliştirileceğinden bahsedeceğim ve bazı örnek kodlar paylaşacağım.

Öncelikle HarmonyOS nedir, ne zaman yayınlandı diye merak ediyorsanız aşağıdaki bağlantıya tıklayarak HarmonyOS ile ilgili bazı önemli detayları öğrenebilirsiniz.

File Storage Nedir?

HarmonyOS’un geliştiricilere sunduğu servislerden birisi olan File Storage, adından da anlaşılacağı üzere cihazda dosya depolamak için kullanılmaktadır.

Bu özellik sayesinde HarmonyOS işletim sistemine sahip cihazlarda istediğiniz dosyayı depolayabilir, depoladığınız dosyaları listeleyip, üzerinde değişiklik yapabilir, dosya türüne göre içeriğini düzenleyebilir ve silebilirsiniz.

Ben bu yazıda Lite Wearable cihazlar için dosya depolama işlemlerinden bahsedeceğim. Lite Wearable bir cihazda bazı bilgileri tutarak, kurduğum algoritmanın gerekli yerlerinde bu dosya içindeki verileri okuyarak, kullanıcıdan aldığım veriler ile birlikte karşılaştırma yaparak, kullanıcıya yeni bir çıktı sunmayı hedefliyorum. Bunun için Lite Wearable cihazda bir .txt dosyası oluşturup, bunun içine ihtiyaç duyduğum verileri yazacağım.

Eğer dosya depolamak istemezseniz, data storage özelliği ile verileri direkt cihazın hafızasına da kaydedebilirsiniz. Bu konu ile ilgili detayları öğrenmek için aşağıdaki bağlantıyı ziyaret edebilirsiniz.

Geliştirme Adımları

  1. HarmonyOS Projesi Oluşturma

Yeni bir HarmonyOS projesi oluşturmak için öncelikle bilgisayarınızda DevEco Studio kurulu olmalı ve bir geliştirici hesabına sahip olmalısınız.

Geliştirici konsol üzerinden üzerinden uygulamanızı oluşturup, uygulamaya özel bir sertifika almanız ve bu sertifikayı DevEco Studio’da oluşturduğunuz projeye eklemeniz gerekmektedir. Tüm bu adımların nasıl yapıldığını anlatan Medium yazımıza aşağıdaki bağlantıdan erişerek projeye başlamadan önce tamamlamanız gereken adımları öğrenip uygulayabilirsiniz.

2. Dizin Oluşturma

Bir dosyayı direkt cihazda uygulama için ayrılan dizine kaydedebileceğiniz gibi, birden fazla dosyayı kaydetmek için belirli bir dizin yapısına ihtiyaç duyabilirsiniz. Bu durumda ilk önce ihtiyaçlarınızı karşılayacak yeni bir dizin oluşturmanız gerekmektedir.

Bunun için file.mkdir metodunu kullanmanız gerekmektedir. İlk olarak, bu metoda paramtre olarak oluşturmak istediğiniz dizini string olarak “uri” değişkeni içinde tanımlamanız gerekiyor. Gerekli tanımlamayı yaptıktan sonra success ve fail metotlarını çağırarak, bu metotlar içinde log yazdırarak ya da kullanıcıya bilgi mesajları göstererek işlemin başarılı olup olmadığını kontrol edebilirsiniz.

Yeni bir dizin oluşturmak için gerekli olan kod bloğu aşağıdaki gibi olmalıdır. Örnekte görüldüğü gibi çok kısa bir kod bloğu sayesinde istediğiniz isimde yeni bir dizin oluşturabilir, daha sonra bu dizine istediğiniz dosyaları kaydedip, kaydettiğiniz dosyaları listeleyebilirsiniz.

3. Dizin Silme

Daha önce oluşturduğunuz dizini artık kullanmıyorsanız, ya da silmek istiyorsanız bunun için file.rmdir metodunu kullanmanız gerekmektedir.

Bu metot ile silmek istediğiniz dizini string olarak “uri” değişkenine tanımladıktan sonra, success ve fail metotlarını çağırarak, bu metotlar içinde log yazdırarak ya da kullanıcıya bilgi mesajları göstererek işlemin başarılı olup olmadığını kontrol edebilirsiniz.

Var olan bir dizini silmek için gerekli olan kod bloğu aşağıdaki gibi olmalıdır. Örnekte görüldüğü gibi çok kısa bir kod bloğu sayesinde daha önce oluşturduğunuz dizini kolaylıkla silebilirsiniz.

4. Dosyaya Yazma

Bir .txt dosyası oluşturup bu dosya içine bazı veriler yazmak için file.writeText metodu kullanılmalıdır.

Burada dikkat etmemiz gereken en önemli nokta, bir dosyaya yazmak için o dosyanın var olması gerekmez. file.writeText metodu sayesinde string olarak vereceğiniz konuma belirttiğiniz isimde bir dosya otomatik olarak oluşturulacak ve, bu dosyanın içine parametre olarak verdiğiniz string yazdırılacaktır.

Özetlemek gerekirse, yeni bir dizin oluştururken yalnıza bir uri değeri tanımlamıştık. Dosyaya yazmak istediğimiz zaman ise bu uri değerinin yanı sıra bir de text değeri tanımlamamız gerekiyor. Bu iki satırlık işlemden sonra her zaman olduğu gibi success ve fail metotlarını çağırarak, bu metotlar içinde log yazdırarak ya da kullanıcıya bilgi mesajları göstererek işlemin başarılı olup olmadığını kontrol edebilirsiniz.

5. Dosya Bilgilerini Görüntüleme

Daha önce kaydettiğiniz herhangi bir dosyanın konum, uzunluk, son değiştirilme tarihi, ve dosyanın türü gibi bilgilere ulaşabilmeniz için file.get metodunu kullanmanız yeterli olacaktır.

6. Dosya Okuma

Daha önce oluşturup içinde veri yazdığınız dosyaları okumak için file.readText metodu kullanılmalıdır. Bu metot sayesinde belirttiğiniz adresteki bir text dosyasının içeriğini okuyabilir, kullanıcıya gösterebilir ve bu verileri işleyebilirsiniz. İlk olarak ilgili dosyanın uri değerini belirtip, daha sonra da her zaman olduğu gibi success ve fail metotlarını çağırarak, bu metotlar içinde log yazdırarak ya da kullanıcıya bilgi mesajları göstererek işlemin başarılı olup olmadığını kontrol edebilirsiniz.

7. Dosya Kopyalama

Var olan bir dosyanın kopyasına ihtiyaç duyduğunuzda bunu yapmak çok kolay. Bunun için file.copy metodunu kullanıp, kaynak dosya adresini ve hedef dosya adresini parametre olarak vermeniz yeterli olacaktır. Dikkat etmeniz gerek tek önemli nokta kaynak dosya adresi ve adı ile hedef adresi ve adının aynı olmaması. Dosya kopyalama işlemi için gerekli olan kod bloğu aşağıdaki gibidir.

8. Dosya Taşıma

Mevcut bir dosyanın konumunu değiştirmek için file.move metodu kullanılmaktadır. Bu metoda parametre olarak kaynak dosya konumunu ve taşınmasını istediğiniz konumu verip success ve fail metotlarını çağırarak, bu metotlar içinde log yazdırarak ya da kullanıcıya bilgi mesajları göstererek işlemin başarılı olup olmadığını kontrol edebilirsiniz.

9. Dosyaları Listeleme

Daha önce kaydettiğiniz dosyaları ve var olan diğer tüm dosyaları listelemek ve bu dosyaların detaylarını (URI, son değiştirilme tarihi, boyutu ve dosya türü vb.) öğrenmek için file.list metodu kullanılmaktadır. Bu metot ile eğer işlem başarılıysa success metodu içinde bir for döngüsü açarak, ilgili adresteki tüm dosyaların listesini görebilirsiniz. Örnek kod aşağıdaki gibi olmalıdır.

10. Dosya Silme

Son olarak oluşturduğumuz bir dosyayı nasıl sileceğimize bakalım. Yukarıdaki örneklerde gördüğünüz gibi HarmonyOS JS API ile çok uzun ve karmaşık kodlar yazmadan, bütün işlemler başarılı bir şekilde yapılabilmektedir. Dosya silme işlemi için de aynı durum geçerliliğini korumaya devam ediyor. file.delete metoduna silinmesini istediğiniz dosyanın konumu vererip success ve fail metotlarını çağırıp dosya silme işlemini gerçekleştirebilirsiniz.

Tips & Tricks

  • URI değeri maksimum 128 karakter olmalıdır ve içinde herhangi bir özel karakter bulunmamalıdır.
  • Dosyaya yazmak istediğiniz text içinde tırnak işareti gibi karakterler olursa, sistem bunu yanlış anlayacak ve texti parçalara ayırdığı için yazma işlemi başarılı olmayacaktır.
  • Bazı önemli hata kodları şu ve açıkalamaları şu şekildedir;
202 : Geçersiz Parametre
300 : I/O Hatası
301 : Dizin veya Dosya Bulunamadı

Referanslar

https://developer.harmonyos.com/en/docs/documentation/doc-references/lite-wearable-file-storage-0000001169105061

--

--