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