2015-10-05 47 views

回答

5

我相信Oracle只是根據新的java.nio.file API將它們稱爲「遺留」。如果他們真的想阻止它的使用,他們會棄用這些方法。

但是,如果你仍然想使用NIO2,說爲統一起見,你可以查詢平臺對DOSPOSIX屬性支持基本FileStore

Path file = Paths.get("file.txt"); 

// Files.createFile(file); 
System.out.println(Files.isWritable(file)); // true 

// Query file system 
FileStore fileStore = Files.getFileStore(file); 
if (fileStore.supportsFileAttributeView(DosFileAttributeView.class)) { 
    // Set read-only 
    Files.setAttribute(file, "dos:readonly", true); 
} else if (fileStore.supportsFileAttributeView(PosixFileAttributeView.class)) { 
    // Change permissions 
} 
System.out.println(Files.isWritable(file)); // false 

還有FileAttributeView類可以用來輕鬆更新多個屬性。

DosFileAttributeView attrs = 
      Files.getFileAttributeView(
         file, DosFileAttributeView.class); 
attrs.setSystem(true); 
attrs.setHidden(true); 
attrs.setReadOnly(true); 
相關問題