[NIO.2] 第十三篇 属性视图之 DOS View

为了支持 DOS(或 Samba) 文件系统,DosFileAttributeView 属性视图扩展了 Basic 属性视图(意味着 DOS 属性视图是 Basic 属性视图的子类,可以直接访问父类的属性)。DOS 属性视图提供了四个属性,对应下面的四个方法:
isReadOnly(): 返回只读属性值(true 表示文件不能被删除或修改)
isHidden(): 返回文件是否隐藏的属性(true 表示文件是隐藏文件)
isArchive(): 返回文件是否为存档文件的属性(用于备份程序)
isSystem(): 返回文件的系统属性(true 表示文件是系统文件)

下面的例子通过演示了如何获取这四个属性值:

import java.io.IOException; 
import java.nio.file.Files; 
import java.nio.file.Path; 
import java.nio.file.Paths; 
import java.nio.file.attribute.DosFileAttributes; 
... 
DosFileAttributes attr = null; 
Path path = Paths.get("C:/rafaelnadal/tournaments/2009", "BNP.txt"); 

try { 
    attr = Files.readAttributes(path, DosFileAttributes.class); 
} catch (IOException e) { 
    System.err.println(e); 
} 

System.out.println("Is read only ? " + attr.isReadOnly()); 
System.out.println("Is Hidden ? " + attr.isHidden()); 
System.out.println("Is archive ? " + attr.isArchive()); 
System.out.println("Is system ? " + attr.isSystem());


设置和获取单个属性可以使用 setAttribute() 和 getAttribute() 方法,看看下面的例子:

import static java.nio.file.LinkOption.NOFOLLOW_LINKS; 
… 
//setting the hidden attribute to true 
try { 
    Files.setAttribute(path, "dos:hidden", true, NOFOLLOW_LINKS); 
} catch (IOException e) { 
    System.err.println(e); 
} 

//getting the hidden attribute  
try { 
    boolean hidden = (Boolean) Files.getAttribute(path, "dos:hidden", NOFOLLOW_LINKS); 
    System.out.println("Is hidden ? " + hidden); 
} catch (IOException e) { 
     System.err.println(e); 
}


DOS 属性视图支持以下属性名称:

  • hidden
  • readonly
  • system
  • archive


访问属性的通用结构是 [view-name:]attribute-name,在这个例子中 view-name 是 dos,attribute-name 是 hidden。

文章来源: http://www.aptusource.org/2014/03/nio-2-dos-view/

你可能感兴趣的:(java,Java NIO.2)