当前位置: 首页>>代码示例>>Java>>正文


Java UserDefinedFileAttributeView类代码示例

本文整理汇总了Java中java.nio.file.attribute.UserDefinedFileAttributeView的典型用法代码示例。如果您正苦于以下问题:Java UserDefinedFileAttributeView类的具体用法?Java UserDefinedFileAttributeView怎么用?Java UserDefinedFileAttributeView使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


UserDefinedFileAttributeView类属于java.nio.file.attribute包,在下文中一共展示了UserDefinedFileAttributeView类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: getInode

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
private long getInode(File file) throws IOException {

        UserDefinedFileAttributeView view = null;
        // windows system and file customer Attribute
        if (OS_WINDOWS.equals(os)) {
            view = Files.getFileAttributeView(file.toPath(), UserDefinedFileAttributeView.class);// 把文件的内容属性值放置在view里面?
            try {
                ByteBuffer buffer = ByteBuffer.allocate(view.size(INODE));// view.size得到inode属性值大小
                view.read(INODE, buffer);// 把属性值放置在buffer中
                buffer.flip();
                return Long.parseLong(Charset.defaultCharset().decode(buffer).toString());// 返回编码后的inode的属性值

            }
            catch (NoSuchFileException e) {
                long winode = random.nextLong();
                view.write(INODE, Charset.defaultCharset().encode(String.valueOf(winode)));
                return winode;
            }
        }
        long inode = (long) Files.getAttribute(file.toPath(), "unix:ino");// 返回unix的inode的属性值
        return inode;
    }
 
开发者ID:uavorg,项目名称:uavstack,代码行数:23,代码来源:ReliableTaildirEventReader.java

示例2: getSupportedFileAttributes

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
private Set<String> getSupportedFileAttributes(FileStore fs) {
  Set<String> attrs = new HashSet<String>();
  if (fs.supportsFileAttributeView(AclFileAttributeView.class)) {
    attrs.add("acl");
  }
  if (fs.supportsFileAttributeView(BasicFileAttributeView.class)) {
    attrs.add("basic");
  }
  if (fs.supportsFileAttributeView(FileOwnerAttributeView.class)) {
    attrs.add("owner");
  }
  if (fs.supportsFileAttributeView(UserDefinedFileAttributeView.class)) {
    attrs.add("user");
  }
  if (fs.supportsFileAttributeView(DosFileAttributeView.class)) {
    attrs.add("dos");
  }
  if (fs.supportsFileAttributeView(PosixFileAttributeView.class)) {
    attrs.add("posix");
  }
  if (fs.supportsFileAttributeView(FileAttributeView.class)) {
    attrs.add("file");
  }
  return attrs;
}
 
开发者ID:tinyMediaManager,项目名称:tinyMediaManager,代码行数:26,代码来源:FSTest.java

示例3: visible

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
@Override
public boolean visible() throws IOException {
    final boolean shown;
    final UserDefinedFileAttributeView view =
        Files.getFileAttributeView(
            this.file.toPath(), UserDefinedFileAttributeView.class
        );
    if (view.list().contains(MkAttributes.VISIBILITY)) {
        final ByteBuffer buf = ByteBuffer.allocate(
            view.size(MkAttributes.VISIBILITY)
        );
        view.read(MkAttributes.VISIBILITY, buf);
        buf.flip();
        shown = Boolean.valueOf(
            StandardCharsets.UTF_8.decode(buf).toString()
        );
    } else {
        shown = false;
    }
    return shown;
}
 
开发者ID:libreio,项目名称:libre,代码行数:22,代码来源:MkAttributes.java

示例4: testFileStoreAttributes

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
/**
 * Test: File and FileStore attributes
 */
@Test
public void testFileStoreAttributes() throws URISyntaxException, IOException {
  URI uri = clusterUri.resolve("/tmp/testFileStore");
  Path path = Paths.get(uri);
  if (Files.exists(path))
    Files.delete(path);
  assertFalse(Files.exists(path));
  Files.createFile(path);
  assertTrue(Files.exists(path));
  FileStore store1 = Files.getFileStore(path);
  assertNotNull(store1);
  assertTrue(store1.supportsFileAttributeView("basic"));
  assertTrue(store1.supportsFileAttributeView(BasicFileAttributeView.class));
  assertTrue(store1.supportsFileAttributeView("posix") == store1
      .supportsFileAttributeView(PosixFileAttributeView.class));
  assertTrue(store1.supportsFileAttributeView("dos") == store1
      .supportsFileAttributeView(DosFileAttributeView.class));
  assertTrue(store1.supportsFileAttributeView("acl") == store1
      .supportsFileAttributeView(AclFileAttributeView.class));
  assertTrue(store1.supportsFileAttributeView("user") == store1
      .supportsFileAttributeView(UserDefinedFileAttributeView.class));
}
 
开发者ID:damiencarol,项目名称:jsr203-hadoop,代码行数:26,代码来源:TestFileStore.java

示例5: readFileAttributeAsLong

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
Optional<Long> readFileAttributeAsLong(Path file, String attribute, UserDefinedFileAttributeView view, List<String> knownAttributes) {
  if (knownAttributes.contains(attribute)) {
    try {
      LOG.trace("Attempting to read attribute {}, from file {}", attribute, file);
      ByteBuffer buf = ByteBuffer.allocate(view.size(attribute));
      view.read(attribute, buf);
      buf.flip();
      String value = Charset.defaultCharset().decode(buf).toString();
      if (Strings.isNullOrEmpty(value)) {
        LOG.debug("No attrbiute {} found for file {}", attribute, file);
        return Optional.absent();
      }
      return Optional.of(Long.parseLong(value));
    } catch (Exception e) {
      LOG.error("Error getting extra file metadata for {}", file, e);
      return Optional.absent();
    }
  } else {
    return Optional.absent();
  }
}
 
开发者ID:HubSpot,项目名称:Singularity,代码行数:22,代码来源:SingularityUploader.java

示例6: getFileAttributes

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
UploaderFileAttributes getFileAttributes(Path file) {
  Set<String> supportedViews = FileSystems.getDefault().supportedFileAttributeViews();
  LOG.trace("Supported attribute views are {}", supportedViews);
  if (supportedViews.contains("user")) {
    try {
      UserDefinedFileAttributeView view = Files.getFileAttributeView(file, UserDefinedFileAttributeView.class);
      List<String> attributes = view.list();
      LOG.debug("Found file attributes {} for file {}", attributes, file);
      Optional<Long> maybeStartTime = readFileAttributeAsLong(file, LOG_START_TIME_ATTR, view, attributes);
      Optional<Long> maybeEndTime = readFileAttributeAsLong(file, LOG_END_TIME_ATTR, view, attributes);
      return new UploaderFileAttributes(maybeStartTime, maybeEndTime);
    } catch (Exception e) {
      LOG.error("Could not get extra file metadata for {}", file, e);
    }
  }
  return new UploaderFileAttributes(Optional.absent(), Optional.absent());
}
 
开发者ID:HubSpot,项目名称:Singularity,代码行数:18,代码来源:SingularityUploader.java

示例7: testWritingKeepsFileAttributes

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
/**
 * Test for bug 240953 - Netbeans Deletes User Defined Attributes.
 *
 * @throws java.io.IOException
 */
public void testWritingKeepsFileAttributes() throws IOException {

    final String attName = "User_Attribute";
    final String attValue = "User_Attribute_Value";

    if (Utilities.isWindows()) {
        clearWorkDir();
        File f = new File(getWorkDir(), "fileWithAtts.txt");
        f.createNewFile();
        UserDefinedFileAttributeView attsView = Files.getFileAttributeView(
                f.toPath(), UserDefinedFileAttributeView.class);
        ByteBuffer buffer = Charset.defaultCharset().encode(attValue);
        attsView.write(attName, buffer);

        buffer.rewind();
        attsView.read(attName, buffer);
        buffer.flip();
        String val = Charset.defaultCharset().decode(buffer).toString();
        assertEquals(attValue, val);

        FileObject fob = FileUtil.toFileObject(f);
        OutputStream os = fob.getOutputStream();
        try {
            os.write(55);
        } finally {
            os.close();
        }

        buffer.rewind();
        attsView.read(attName, buffer);
        buffer.flip();
        String val2 = Charset.defaultCharset().decode(buffer).toString();
        assertEquals(attValue, val2);
    }
}
 
开发者ID:apache,项目名称:incubator-netbeans,代码行数:41,代码来源:FileObjTest.java

示例8: setExecutable

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
public static void setExecutable ( final Path path, final boolean state ) throws IOException
{
    final UserDefinedFileAttributeView ua = Files.getFileAttributeView ( path, UserDefinedFileAttributeView.class );
    if ( state )
    {
        ua.write ( ATTR_EXECUTE, ByteBuffer.wrap ( marker ) );
    }
    else
    {
        ua.delete ( ATTR_EXECUTE );
    }
}
 
开发者ID:eclipse,项目名称:neoscada,代码行数:13,代码来源:Executables.java

示例9: getExecutable

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
public static boolean getExecutable ( final Path path ) throws IOException
{
    final UserDefinedFileAttributeView ua = Files.getFileAttributeView ( path, UserDefinedFileAttributeView.class );

    if ( !ua.list ().contains ( ATTR_EXECUTE ) )
    {
        // check first, otherwise the size() call with give an exception
        return false;
    }

    final ByteBuffer buf = ByteBuffer.allocate ( ua.size ( ATTR_EXECUTE ) );
    ua.read ( ATTR_EXECUTE, buf );
    buf.flip ();
    return Boolean.parseBoolean ( CHARSET.decode ( buf ).toString () );
}
 
开发者ID:eclipse,项目名称:neoscada,代码行数:16,代码来源:Executables.java

示例10: setCustomerAttr

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
@Test
public void setCustomerAttr() throws IOException {

    Path target = Paths.get("/Users/fathead/temp/file4");
    UserDefinedFileAttributeView view = Files.getFileAttributeView(target, UserDefinedFileAttributeView.class);
    view.write(name, Charset.defaultCharset().encode("pinelet"));
}
 
开发者ID:uavorg,项目名称:uavstack,代码行数:8,代码来源:DoTestRuleFilterFactory.java

示例11: getCustomerAttr

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
@Test
public void getCustomerAttr() throws IOException {

    Path target = Paths.get("/Users/fathead/temp/file4");
    UserDefinedFileAttributeView view2 = Files.getFileAttributeView(target, UserDefinedFileAttributeView.class);
    ByteBuffer buf = ByteBuffer.allocate(view2.size(name));
    view2.read(name, buf);
    buf.flip();
    String value = Charset.defaultCharset().decode(buf).toString();
    System.out.println("value=" + value);
}
 
开发者ID:uavorg,项目名称:uavstack,代码行数:12,代码来源:DoTestRuleFilterFactory.java

示例12: before

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
@BeforeClass
public static void before() throws IOException {

    fsDescription = build().
            windows().noUNC().noRootComponents().next().
            playground().set( MemoryFileSystemBuilder.newWindows().addFileAttributeView( UserDefinedFileAttributeView.class ).build( "marschall" ).getPath( "play" ).toAbsolutePath() ).
            time().noLastAccessTime().next().
            pathConstraints().noMaxFilenameLength().next().
            closable().no().
            hardlinks().no().
            symlinks().noDirs().next().
            watchable().no().
            bugScheme( "RelSymLink", true ).
            bug( "testAppendAndReadThrows" ).
            bug("testEveryChannelWriteUpdatesLastModifiedTime").
            bug("testGetNameOfDefaultPathIsItself").
            bug("testPathMatcherKnowsGlob").
            bug("testPathMatherGlob").
            bug("testReadCreateNonExistingFileThrows").
            bug("testCopyIntoItself").
            bug("testCopyNonEmptyDirDoesNotCopyKids").
            bug("testUnsupportedAttributeViewReturnsNull").
            bug("testIsSameFileOfDifferentPathNonExistingFileIsNot").
            bug( "testIsSameFileOfDifferentPathNonExistingFile2IsNot").
            bug( "testCopyToSymLink").
            bug( "testSymLinkToUnnormalizedRelPath" ).
            bug("testIsSameFileOtherProvider2").
            bug( "testIsSameFileOnEqualPathElementsOtherProvider" ).
            bug( "testGetFileStoreOfNonExistent" ).
            bug( "testGetFileStoreOfBrokenSymLink" ).
            bug( "testPathToUriAndBackIsSame").
            bug( "testPathWithWitespaceToUriAndBack").
            nitpick( "testIsSameFileOtherProvider", "strange anyway").
            nitpick("testGetPathOtherURI", "different exception").
            nitpick("testRegisterOnClosedWatchService", "different exception").
            done();
    

}
 
开发者ID:openCage,项目名称:ListOfJavaNioFileSystems,代码行数:40,代码来源:MarschallWindowsTest.java

示例13: show

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
@Override
public void show(final boolean shwn) throws IOException {
    Files.getFileAttributeView(
        this.file.toPath(), UserDefinedFileAttributeView.class
    ).write(
            MkAttributes.VISIBILITY,
            StandardCharsets.UTF_8.encode(String.valueOf(shwn))
        );
}
 
开发者ID:libreio,项目名称:libre,代码行数:10,代码来源:MkAttributes.java

示例14: testUserDefinedAttributes

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
@Test
@Category( Attributes.class )
public void testUserDefinedAttributes() {
    try {
        Files.getFileAttributeView( getFile(), UserDefinedFileAttributeView.class );
    } catch( Exception e ) {
        fail( "UserDefinedAttributeView must be supported" );
    }
}
 
开发者ID:openCage,项目名称:niotest,代码行数:10,代码来源:Tests06Attributes.java

示例15: main

import java.nio.file.attribute.UserDefinedFileAttributeView; //导入依赖的package包/类
public static void main(String[] args) throws IOException {
//    第三个并且是最后一个例子涉及了利用 java.nio.file.attribute 包中的类获取并设置文件属性的新的 API。
//
//    新的 API 能够提供对各种文件属性的访问。在以前的 Java 版本中,仅能得到基本的文件属性集(大小、修改时间、文件是否隐藏、以及它是文件还是目录)。为了获取或者修改更多的文件属性,必须利用运行所在平台特定的本地代码来实现,这很困难。很幸运的是,Java 7 能够允许您通过很简单的方式,利用 java.nio.file.attribute 类来读取,如果可能,修改扩展的属性集,完全去掉了这些操作的平台特定属性。
//
//    在新的 API 中有七个属性视图,其中一些特定于操作系统。这些 “ 视图 ” 类允许您获取并设置任何关联的属性,并且其中每个都具有对应的包含真实属性信息的属性类。让我们依次来看一下。
//    AclFileAttributeView 与 AclEntry
//
//    AclFileAttributeView 允许您为特定文件设置 ACL 及文件所有者属性。其 getAcl() 方法返回一个 List of AclEntry 对象,每个对应文件的一个权限集。其 setAcl(List<AclEntry>) 方法允许您修改该访问列表。这些属性视图仅可用于 Microsoft® Windows® 系统。
//    BasicFileAttributeView 与 BasicFileAttributes
//
//    这一视图类允许您获取一系列 —— 平常的 —— 基本文件属性,构建于以前的 Java 版本之上。其 readAttributes() 方法返回一个 BasicFileAttributes 实例,该实例包含最后修改时间、最后访问时间、创建时间、大小、以及文件属性等细节(常规文件、目录、符号链接、或者其他)。这一属性视图在所有平台上均可用。
    File attribFile = new File(".");
    Path attribPath = attribFile.toPath();
//    为获取想要的文件属性视图,我们在 Path 上使用 getFileAttributeView(Class viewClass) 方法。为获取 BasicFileAttributeView for attribPath,我们简单地调用:

    BasicFileAttributeView basicFileAttributeView =Files.getFileAttributeView(attribPath, BasicFileAttributeView.class);
//    正如前面所描述的,为从 BasicFileAttributeView 获取 BasicFileAttributes,我们只要调用其 readAttributes() 方法:
    BasicFileAttributes basicAttribs = basicFileAttributeView.readAttributes();
//    那么这样就可以了,现在已经得到了您所想要的任何基本文件属性。对于 BasicFileAttributes,只有创建、最后修改、以及最后访问时间可被修改(因为改变文件大小或者类型没有意义)。为改变这些,我们可以使用 java.nio.file.attribute.FileTime 类来创建新的时间,然后在 BasicFileAttributeView 上调用 setTimes() 方法。例如,我们可以不断地更新文件的最后修改时间。
    FileTime newModTime
            = FileTime.fromMillis(basicAttribs.lastModifiedTime().toMillis() + 60000);
    basicFileAttributeView.setTimes(newModTime, null, null);
//    这两个 null 指出,我们不想改变这一文件的最后访问时间或者创建时间。如果以前面相同的方式再次检查基本属性,您会发现最后修改时间已被修改,但是创建时间和最后访问时间还保持原样。

//    DosFileAttributeView 与 DosFileAttributes
//
//    这一视图类允许您获取指定给 DOS 的属性。(您可能会猜想,这一视图仅用于 Windows 系统。)其 readAttributes() 方法返回一个 DosFileAttributes 实例,该实例包含有问题的文件是否为只读、隐藏、系统文件、以及存档文件等细节信息。这一视图还包含针对每个属性的 set*(boolean) 方法。
//    FileOwnerAttributeView 与 UserPrincipal
//
//    这一视图类允许您获取并设置特定文件的所有者。其 getOwner()方法返回一个 UserPrincipal(还处于 java.nio.file.attribute 包中),其又具有 getName() 方法,来返回包含所有者名字的 String。该视图还提供 setOwner(UserPrincipal) 方法用于变更文件所有者。该视图在所有平台上都可用。
//    FileStoreSpaceAttributeView 与 FileStoreSpaceAttributes
//
//    这一用很吸引人的方式命名的类,允许您获取有关特定文件存储的信息。其 readAttributes() 方法返回一个包含文件存储的整个空间、未分配空间、以及已使用空间细节的 FileStoreSpaceAttributes 实例。这一视图在所有平台上都可用。
//    PosixFileAttributeView 与 PosixFileAttributes
//
//    这一视图类,仅在 UNIX® 系统上可用,允许您获取并设置指定给 POSIX(Portable Operating System Interface)的属性。其 readAttributes() 方法返回一个包含有关这一文件的所有者、组所有者、以及这一文件许可(这些细节通常用 UNIX chmod 命令设置)的 PosixFileAttributes 实例。这一视图还提供 setOwner(UserPrincipal)、 setGroup(GroupPrincipal)、以及 setPermissions(Set<PosixFilePermission>) 来修改这些属性。
//    UserDefinedFileAttributeView 与 String
//
//    这一视图类,仅可用于 Windows,允许您获取并设置文件的扩展属性。 这些属性跟其他的不同,它们只是名称值对,并可按需对其进行设置。 如果想向文件增加一些隐藏的元数据,而不必修改文件内容,这就很有用了。 这一属性提供 list() 方法,来为相关的文件返回 List of String 扩展属性的名字。
//
//    有了其名字后,就要获取特定属性的内容,这一视图具有一个 size(String name) 方法来返回属性值的大小,以及一个 read(String name, ByteBuffer dest) 方法来将属性值读取到 ByteBuffer 中。这一视图还提供 write(String name, ByteBuffer source) 方法来创建或者修改属性,以及一个 delete(String name) 方法来完全移除现有的属性。
//
//    这可能是最有趣的新属性视图,因为它允许您利用任意 String 名字和 ByteBuffer 值向文件增加属性。这很对 —— 其值是个 ByteBuffer,因此您可以在这里存储任何二进制数据。

    UserDefinedFileAttributeView userView
            = Files.getFileAttributeView(attribPath, UserDefinedFileAttributeView.class);
//    为获取用户为这一文件定义的属性名,我们在视图上调用 list() 方法:
    List<String> attribList = userView.list();
//    一旦我们拥有了想得到相关值的特定属性名,就为该值分配一个大小合适的 ByteBuffer,然后调用视图的 read(String, ByteBuffer) 方法:
//
//    ByteBuffer attribValue = ByteBuffer.allocate(userView.size(attribName));
//    userView.read(attribName, attribValue);
//
//    attribValue 现在包含了为那一特定属性所存储的任何数据。 想设置自己的属性,只需创建 ByteBuffer 并按需填入数据,然后在视图上调用 write(String,
// ByteBuffer) 方法:
//
//    userView.write(attribName, attribValue);
  }
 
开发者ID:edgar615,项目名称:javase-study,代码行数:60,代码来源:AttributeMain.java


注:本文中的java.nio.file.attribute.UserDefinedFileAttributeView类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。