lstat() sistem çağrısı tarafından döndürülen bir dosyanın birkaç özelliğini (sahibi, boyutu, izinleri, süreleri) almak istiyorum. Java'da bunu yapmanın bir yolu, bir java.io.File nesnesi oluşturmak ve üzerinde length(), lastModified(), vb. Gibi aramalar yapmaktır.Java için Unix stat()/lstat()
bu aramaların Her biri stat() çağrısını tetikler ve benim amaçları stat() ler pahalı kabul edilir: ben paralel olarak dosyaların milyarlarca taramak için çalışıyorum şimdiye kadar iki sorun var yüzlerce ana bilgisayar ve (bir ilk yaklaşıma kadar) bu dosyalara erişmenin tek yolu NFS aracılığıyla, genellikle yük altında stat() yükünün yarım saniye sürdüğü bölme kümelerine karşıdır.
Arama lstat() değil, normalde stat() (hangisini izler) veya fstat64() (dosyayı açar ve erişim süresini kaydetmek için bir yazma işlemi başlatır).
JDK 7 İstediğim her şeyi java.nio.file içinde PosixFileAttributes arayüzüne sahip (ama eğer yapabilirsem ben daha çok gece çalışıyor olması istemem benim JDK kurar olacaktır: Ne Googling gelen ana kadar bulduk Bunu önlemek).
Kendi arayüzümü JNI veya JNA ile yürütebilirim (ancak varolan bir tanesini kullanmamayı tercih ederim). Bir previous similar question
önerilen JNI'yı/JNA uygulamaların bir çift var. Biri gitti ve diğeri şüphesiz korunur (örneğin, indirmeler, sadece bir hg deposu).
Orada daha iyi seçenekler var mı?
Teşekkürler! Nihayetinde JDK 7'nin çok kötü olmadığını sanırım; Ben ikili dosyaları sadece yazdığım araçla koruyabilirim, ve yakında üretim sınıfı bir yazılım olacak. Biraz tarihsel arka plan için –