[NIO.2] 判断文件系统所支持属性视图_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > [NIO.2] 判断文件系统所支持属性视图

[NIO.2] 判断文件系统所支持属性视图

 2014/3/27 19:11:13  cucaracha  程序员俱乐部  我要评论(0)
  • 摘要:在访问文件属性之前,需要确保文件系统支持你所使用的属性视图。NIO.2中可以获取文件系统所支持的属性视图名称列表,也可以通过FileStore类来检验文件存储是否支持某个属性视图。通过调用FileSystems.getDefault()可得到当前的默认文件系统,调用FileSystem.supportedFileAttributeViews()方法可得到文件系统支持的属性视图列表,例如:importjava.nio.file.FileSystem;importjava.nio.file
  • 标签:文件
在访问文件属性之前,需要确保文件系统支持你所使用的属性视图。NIO.2 中可以获取文件系统所支持的属性视图名称列表,也可以通过 FileStore 类来检验文件存储是否支持某个属性视图。
通过调用 Filesystems.html" target="_blank">Systems.getDefault() 可得到当前的默认文件系统,调用 FileSystem.supportedFileAttributeViews() 方法可得到文件系统支持的属性视图列表,例如:

class="java">import java.nio.file.FileSystem; 
import java.nio.file.FileSystems; 
import java.util.Set; 
… 
FileSystem fs = FileSystems.getDefault();         
Set views = fs.supportedFileAttributeViews(); 
         
for (String view : views) { 
      System.out.println(view); 
} 


在 Windows 7 系统下,上面的代码将会打印:

acl 
basic 
owner 
user 
dos 


注意,basic 支持任何文件系统,因此在任何文件系统下运行,至少要打印出 basic。

也可以调用 FileStore.supportsFileAttributeView() 方法来判断文件存储是否支持某个属性视图,这个方法可传入 String 类型或 Class 类型。下面的例子演示了如何判断所有的文件存储是否都支持 basic 视图:

import java.nio.file.FileStore; 
import java.nio.file.FileSystem; 
import java.nio.file.FileSystems; 
import java.nio.file.attribute.BasicFileAttributeView; 
… 
FileSystem fs = FileSystems.getDefault(); 
for (FileStore store : fs.getFileStores()) { 
   boolean supported = store.supportsFileAttributeView(BasicFileAttributeView.class); 
   System.out.println(store.name() + " ---" + supported); 
} 


你也可以使用下面的代码得到 BNP.txt 文件所在的文件存储是否支持 basic 视图:

import java.io.IOException; 
import java.nio.file.FileStore; 
import java.nio.file.Files; 
import java.nio.file.Path; 
import java.nio.file.Paths; 
… 
Path path = Paths.get("C:/rafaelnadal/tournaments/2009", "BNP.txt"); 
 
try { 
    FileStore store = Files.getFileStore(path); 
    boolean supported = store.supportsFileAttributeView("basic"); 
    System.out.println(store.name() + " ---" + supported); 
} catch (IOException e) { 
    System.err.println(e); 
} 


文章来源:http://www.aptusource.org/2014/03/nio-2-view-supported-by-file-system/
发表评论
用户名: 匿名