मैं सार्वजनिक लेखन अनुमतियों के साथ निर्देशिका बनाने की कोशिश कर रहा हूं। चीजों को सरल बनाने के लिए मैं चाहता हूं कि यह 777
अनुमतियां हो।जावा - 777 अनुमति के साथ निर्देशिका बनाने में असमर्थ (इसके बजाय 775 है)
private static FileAttribute<Set<PosixFilePermission>> DIR_PERMISSIONS;
static {
Set<PosixFilePermission> perms = new HashSet<>();
perms.add(PosixFilePermission.OWNER_WRITE);
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_EXECUTE);
perms.add(PosixFilePermission.GROUP_WRITE);
perms.add(PosixFilePermission.GROUP_READ);
perms.add(PosixFilePermission.GROUP_EXECUTE);
perms.add(PosixFilePermission.OTHERS_WRITE);
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_EXECUTE);
DIR_PERMISSIONS = PosixFilePermissions.asFileAttribute(perms);
}
private Path ensurePath(LocalDate localDate) throws IOException {
String year = String.valueOf(localDate.getYear());
String month = String.format("%02d", localDate.getMonthValue());
Path path = Paths.get(rootDirectory, year, month);
return Files.createDirectories(path, DIR_PERMISSIONS);
}
rootDirectory=/tmp/data
के साथ इस /tmp/data/2016/01
जैसे फ़ोल्डर बनाना चाहिए, प्रत्येक 777
साथ अनुमतियाँ: यहाँ मेरी कोड है। इसके बजाय फ़ोल्डर में 775
अनुमतियां (drwxrwxr-x।) हैं इसलिए उन्हें सार्वजनिक लेखन की कमी है। यह इस तरह से क्यों काम कर रहा है? हो सकता है कि जेवीएम को ऐसी अनुमतियां सेट करने में सक्षम होने के लिए विशेष परम की आवश्यकता है? मेरा सिस्टम फेडोरा 24 है, ऐप मानक स्प्रिंग बूट एप्लिकेशन है, जिसे मैवेन प्लगइन द्वारा शुरू किया गया है।
@ ओलिवियरग्रेगोयर यह डुप्लिकेट नहीं है क्योंकि यह समझा नहीं जाता है * क्यों * यह 775 के रूप में बाहर आ रहा है। – Michael
@ माइकल यहां प्रश्न का मुख्य भाग "मैं नहीं कर सकता", क्यों नहीं "क्यों"। दूसरे विषय में स्वीकृत उत्तर पूर्ण है कि इसे कैसे ठीक किया जाए। –
@ ओलिवियरग्रेगोयर "** क्यों ** यह इस तरह से काम कर रहा है?" – Michael