jCIFS – Windows Paylasım Alanlarına Erismek

Javada windows paylaşım alanlarına hemen hemen herhangibir dosyaya erişirmiş gibi erişmeniz mümkün. Tabi bu, paylaşanın da erişeninde aynı işletim sistemine sahip olduğu ve paylaşım alanlarının şifre ile korunmadığı durumlar için geçerli.  İhtiyacımız olan  linux paylaşım alanlarına (Mesala Samba) da erişebilen, kullanıcı adı ve şifre belirleyebildiğiniz bir paylaşım kütüphanesidir. İşte tam bu noktada jCIFS kütüphanesi yardımınıza koşuyor. Bu yazımızın konusunuda bu kütüphanenin nasıl kullanılacağına ayrıyıoruz.

Windows Paylasım Alanlarına Erismek

Hala prosesler arası iletişim için dosya kullanan ne kadar sistem kaldı bilmiyorum ama ufak ölçekli projerlerde bile kullanılmaya devam edildiğini düşünmüyorum. Eğer prosesler arası iletişim için dosya kullanılıyorsa, yani burada kastettiğim ufak bilgiler değil, ağırlıklı olarak dosyalar üzerinden haberleşilmesi, o zaman çalıştığınız şirketin teknoloji takip ettiğini söylemek pek mümkün olmaz. Ama tabi dosya paylaşımının kullanılmasının tek sebebi prosesler arası iletişim sağlamak olmuyor. Bazen başka uygulamalar kendi için dosyalar üretiyor ve sizin bu uygulamaları müdahele şansınız olmuyor. Yinede bu dosyalara erişmeniz gerekebiliyor. Benim durumumda gsm networkleri üzerinde çalışan bir sistemin ürettiği ses dosyalarını alıp, online olarak göstermem gerekiyordu. İlk kez o zaman paylaşım alanları üzerinden dosya taşımam gerekmişti.

İşte bu durumda yaptığım araştırmalar sırasında jCIFS kütüphanesiyle karşılaştım.. jCIFS Güzel, küçük ve eğer daha önce java.io kütüphanesiyle çalıştıysanız kendinizi rahatsız hissetmeyeceğiniz bir kütüphane. Şimdi ufaktan halihazırdaki projemizi hazırlayım ve paylaşım alanlarına nasıl erişebileceğimize bakalım.

Hazırlık

Tek sınıflık bir örnek olacağından ayrı bir proje gibi anlatıp sizi sıkmayacağım. Doğrudan konuya giriyorum. Maven üzerinden anlatacağım ama isterseniz siz pekala kütüphanesini indirip BuildPath’a ekleyipte kullanabilirsiniz.

pom.xml

<dependency>
      <groupId>jcifs</groupId>
      <artifactId>jcifs</artifactId>
      <version>1.3.17</version>
</dependency>

Bağımlılığımızı ekledikten sonra artık sınıfımızı yazabiliriz.

Dosya Okuma/Yazma

Yazacağımız sınıfta iki türlüsünüde göreceğiz. Hem InputStream hem OutputStream olarak nasıl alacağımızı göreceğiz. Zaten bir dosyayı istediğimiz stream olarak elimizde tuttuktan sonra istediğimizi yapabilirz. Burdan sonrasını size bırakıyor olacağım.

App.java

Gördüğünüz gibi jCIFS java.io kütüphanesiyle düzgün bir şekilde çalışıyor. Yani projenizde bir değişiklik yapmanız gerekiyorsa, bunu dosyanızı alırken yapmanız yeterli olacaktır. Dosyayı Stream olarak aldıktan sonra yaptığınız işlemlerde bir değişiklik yapmanıza gerek yoktur.

End Of Line