2016-03-21 19 views
0

Giriş dizinindeki dosyaları okuyor, içeriğinin bir kısmını değiştiriyor ve çıktı dizinine yazıyor. Sorun, çıkış dizininde tüm dosyaların sahibiyim. Bu işlemle bir şey yapmanın bir yolu var, bu şekilde çıktı dosyaları, sahipler ve grupların yanı sıra orijinallerle aynı izinlere sahip olacak. Java 6: Orijinal izne saygılı bir dosyanın değiştirilmiş kopyasını oluşturma

, size ne gerek izinler bilebilir, teşekkür ederiz orijinal dosya dayanarak

Alex

cevap

1

. Yeni dosya için, yeni dosyaların izinlerinin orijinal dosyanızla aynı olmasını sağlamak için File.setReadable(boolean readable), setWriteable(), setExecutable() API'leriyle çalışın.

DÜZENLEME: NOT. Bu, Java> = 7 içindir. Bir dosyanın tüm izinlerini (chmod akin) ayarlamak için Files'a geçin. Bu yöntem setPosixFilePermissions(..) var. şöyle ben bunu kullanmış olduğu java.nio.file.*

Sen

Set<PosixFilePermission> filePermission = new HashSet<PosixFilePermission>(); 

    // OWNER rwe --- --- 
    filePermission.add(PosixFilePermission.OWNER_READ); 
    filePermission.add(PosixFilePermission.OWNER_WRITE); 
    filePermission.add(PosixFilePermission.OWNER_EXECUTE); 

    // GROUP --- rwe --- 
    filePermission.add(PosixFilePermission.GROUP_READ); 
    filePermission.add(PosixFilePermission.GROUP_WRITE); 
    filePermission.add(PosixFilePermission.GROUP_EXECUTE); 

    // GLOBAL --- --- rwe 
    filePermission.add(PosixFilePermission.OTHERS_READ); 
    filePermission.add(PosixFilePermission.OTHERS_WRITE); 
    filePermission.add(PosixFilePermission.OTHERS_EXECUTE); 

    Files.setPosixFilePermissions(Paths.get("{PATH_TO_FILE}"), filePermission); 
+0

Bu çalışır sanmıyorum ... 3 ilgili sınıflara ithal etmek gerekecektir. dokümantasyon setine göreReadable, "Bu soyut yol adı için sahibin okuma iznini ayarlamak için bir kolaylık metodudur." Grup ve diğer izinleri işlemez. – Alex

+1

Ben öyle demedim mi? Sadece bir değil, izinleri ayarlamak için 3 yönteme ihtiyacınız vardır. Lütfen dene. –

+0

Seni yakaladığımdan emin değilim. Okuma/yazma ve yürütme için 3 yöntem? grup ve diğerleri için izin ne olacak? Örneğin, belgelerin yürütme hakları için: "Parametreler: yürütülebilir - Eğer doğruysa, yürütme işlemlerine izin vermek için erişim iznini ayarlar, eğer yürütme işlemlerine izin vermeyecekse false," Gerçek "ise, yürütme izni yalnızca sahibin yürütme iznine uygulanır. Herkes için, eğer temeldeki dosya sistemi, kullanıcının icra iznini başkalarınınkinden ayırt edemezse, bu değer ne olursa olsun, izin herkes için geçerli olacaktır. " – Alex

İlgili konular