2013-04-09 25 views
8

Dosya örneklerine özel meta verileri almak ve ayarlamak mümkün mü? Sistemim aracılığıyla işlediğim dosyaları, her dosyanın gönderenin e-postası, bazı zaman damgaları, vb. Gibi ek özel meta verileri içermesi gereken çok basit bir veritabanı gibi kullanmak istiyorum.Java kullanarak dosyalara özel meta veriler ayarlamak mümkün mü?

bir iç sistem, bu yüzden güvenlik bir sorun değil.

+0

dosya sistemlerini değil, Yani 'report.pdf' adlı bir dosya meta verisini içeren bir' report.pdf.meta' dosyasına sahipti. Genişletilmiş öznitelikler kullanmayla süslü değil, ama işe yaradı. –

cevap

6

Java 7'de bunu Path sınıfını ve UserDefinedFileAttributeView'u kullanarak yapabilirsiniz. İşte

oradan alınan örnektir:

Bir dosyanın MIME türü bu kod parçacığını kullanarak bir kullanıcı tanımlı niteliği olarak saklanabilir

: MIME türü özelliğini okumak için

Path file = ...; 
UserDefinedFileAttributeView view = Files 
    .getFileAttributeView(file, UserDefinedFileAttributeView.class); 
view.write("user.mimetype", 
      Charset.defaultCharset().encode("text/html"); 

, sen dosya sistemi sizeayarlamak istediğiniz belirli dosya için UserDefinedFileAttributeView destekliyorsa

Path file = ...; 
UserDefinedFileAttributeView view = Files 
.getFileAttributeView(file,UserDefinedFileAttributeView.class); 
String name = "user.mimetype"; 
ByteBuffer buf = ByteBuffer.allocate(view.size(name)); 
view.read(name, buf); 
buf.flip(); 
String value = Charset.defaultCharset().decode(buf).toString(); 
+0

"UserDefinedFileAttributeView" işlevini, POSIX genişletilmiş özniteliklerini, yani FAT'yi doğal olarak desteklemeyen bir dosya sistemi ile kullanırsanız ne olur? Bir şekilde taklit edildi mi? –

+0

Kapsamlı bir liste bulamadım, [http://stackoverflow.com/questions/15319586/what-file-sytems-support-java-userdefinedfileattributeview) yanıtı birkaç dosya sistemini listeler. Öğrenmenin tek yolu, FAT üzerinde denemek ve ne olduğunu görmek olduğunu düşünüyorum. –

1

her zaman kontrol etmelidir: Bu kod parçacığını kullanırsınız Sadece Benim deneyim bu

Files.getFileStore(Paths.get(path_to_file))).supportsFileAttributeView(UserDefinedFileAttributeView.class); 

çağırabileceği, UserDefinedFileAttributeView FAT * desteklenen ve (MAC için) HFS + Her dosya için ek bir meta veri dosyası oluşturulan benzer bir ihtiyaç için

İlgili konular