javase获取项目根目录_JavaSE:如何设置/获取您自己的文件和目录属性

javase获取项目根目录

在上一篇文章“确定特定文件系统支持的视图”中 ,了解如何询问文件系统存储,并了解特定文件属性视图的可支持性。

简而言之,我们将探索最高级和最重要的文件属性视图之一,即用户定义的文件属性视图

特别是,在系统之间进行集成期间,我在交换文件中经常使用此功能,以便从用户和文件内容中隐藏文件元数据和与安全性有关的信息。 因此,文件内容将仅与文件的内容有关,而不再是无关的元数据

因此,如果发现没有足够的内置属性来满足需要,或者如果您要与文件关联某些唯一的元数据( 对文件系统有意义 ),则可以定义自己的属性。

NIO.2提供了用户定义的文件属性视图,并通过UserDefinedFileAttributeView接口扩展了属性。 利用此功能,您可以将对您的用例有用的任何属性关联到文件。

在这里,您应该知道如何:

  1. 检查用户定义的属性可支持性
  2. 用户定义属性的操作如下:
    1. 定义用户属性。
    2. 列出用户定义的属性名称和值大小。
    3. 获取用户定义的属性的值。
    4. 删除文件的用户定义属性。

这是先前定义的操作的类,您还需要使用JDK 7+:

import static java.lang.System.err;
import static java.lang.System.out;
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import static java.nio.file.Files.getFileStore;
import java.nio.file.Path;
import static java.nio.file.Paths.get;
import java.nio.file.attribute.UserDefinedFileAttributeView;/*** GET/SET FILES METADATA THROUGH THE NEW JAVA.NIO.FILE.ATTRIBUTE API.** @author mohamed_taman** @see java.nio.file.attribute* @see java.nio.file.Files*/
public class MetadataOperations {private static FileSystem fs = FileSystems.getDefault();private static Path path = get("C:", "workspace/NIO2", "resources", "TOC.txt");public static void main(String... args) {//User-Defined File Attributes View |userDefinedViewsOperations();}private static void userDefinedViewsOperations() {try {// Check User-Defined Attributes Supportabilityif (getFileStore(path).supportsFileAttributeView(UserDefinedFileAttributeView.class)) {// 1- Define a User Attribute.UserDefinedFileAttributeView udfav = Files.getFileAttributeView(path, UserDefinedFileAttributeView.class);out.println("Attrs. before deletion. its size: " + udfav.list().size());for (String name : udfav.list()) {out.println(udfav.size(name) + " " + name);}int written = udfav.write("file.description", Charset.defaultCharset().encode("This file contains private information about HOL2846!"));// 2- List User-Defined Attribute Names and Value Sizes.for (String name : udfav.list()) {out.println(udfav.size(name) + " " + name);}// 3- Get the Value of a User-Defined Attribute.int size = udfav.size("file.description");ByteBuffer bb = ByteBuffer.allocateDirect(size);udfav.read("file.description", bb);bb.flip();out.println(Charset.defaultCharset().decode(bb).toString());/*** Note: Using the UserDefinedFileAttributeView.size() method, * you can easily set the correct size of the buffer that represents * the value of the user-defined attribute.* * Note: You can also read an attribute by using the getAttribute() method. * The value is returned as byte array (byte[]).* */// 4- Delete a File’s User-Defined Attribute.out.println("Attrs. before deletion.");for (String name : udfav.list()) {out.println(udfav.size(name) + " " + name);}udfav.delete("file.description");out.println("Attrs. after deletion.");for (String name : udfav.list()) {out.println(udfav.size(name) + " " + name);}} else {out.println(path.toAbsolutePath().toString() + ", Doesn't support user defined attributes.");}} catch (Exception e) {err.println(e);}}
}

资源资源

  • JavaSE 7,8:确定特定文件系统支持的视图
  • JSR 203:针对JavaTM平台(“ NIO.2”)的更多新I / O API
  • Java SE教程:文件I / O(具有NIO.2功能)

翻译自: https://www.javacodegeeks.com/2014/03/javase-how-to-setget-your-own-files-and-directory-attributes.html

javase获取项目根目录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/342317.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单片机遥控开关mos管

大家好,我是小亿。 说起MOS管,有些人的脑子里可能是一团浆糊,书上说的文字一大堆,今天小亿从物联网实用角度来介绍MOS管中最常用的NMOS,让你做到举一反三。 首先来看图,我们可以用手通过控制开关来实现对灯…

[渝粤教育] 山东职业学院 话说铁道 参考 资料

教育 -话说铁道-章节资料考试资料-山东职业学院【】 随堂测验 1、【单选题】铁路站段是按( )进行专业设置,是直接进行最基本的运输产生活动的生产单位。 A、车、机、工、电、辆  B、机车、车辆、工务、电务 C、车、机、工、电、辆、供 D、铁…

什么是RS-485?

什么是RS485接口 RS-485接口也称为TIA-485(-A)或EIA-485接口,是一种定义UART串行通信系统中使用的驱动器和接收器的电气特性的标准。具有电信号平衡、支持多点系统的功能。该标准由电信行业协会和电子工业联盟(TIA/EIA)联合发布。实施RS485接…

飞畅科技-工业交换机接口类型介绍

工业交换机作为局域网节点连接的网络设备,它的接口类型是随着各种局域网和传输介质类型的发展而变化的,分析一下局域网的主要网络类型和传输介质发展过程,我们就不难发现各种工业交换机接口类型。接下来就由飞畅科技的小编来为大家详细介绍下…

构建Spring微服务并对其进行Dockerize生产

“我喜欢编写身份验证和授权代码。” 〜从来没有Java开发人员。 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证。 在这篇文章中,您将学习微服务架构以及如何使用Spring Boot来实现它。 在使…

RS-485通信接口编码器

CUI Devices的RS-485编码器采用快速的位置安全协议,该安全协议容许编码器在一个字节的时间内积极响应位置。参考RS485标准的OSI模型应用层所说,这样的格式支持64个唯一的编码器地址。编码器的地址是一个字节的高6位,低2位是命令。这种地址可通…

[渝粤教育] 中山大学 地理信息系统概论 参考 资料

www.cnki.net 教育 -地理信息系统概论-章节资料考试资料-中山大学【】 第一讲作业 第一讲测验 1、【单选题】有关信息的论述错误的是()。 A、信息具有传输性 B、信息具有共享性 C、信息具有适用性 D、信息具有主观性 参考资料【 】 2、【单选题】在GIS数…

RS485接口OSI模型的应用层

OSI 模型不是一套规则,而更像是一个帮助工程师表征系统的模型。RS485接口很好地包含在OSI 模型的前三层中,总线的实际实现在应用层中进行了表征。这一层涵盖了设备使用的地址或命令集以及数据的解释。它还包括设计人员期望获得多少数据,以及对…

理解Spring中bean的作用域及其生命周期

作用域 singleton:Spring Ioc容器中只会存在一个共享的Bean实例,无论有多少个Bean引用它,始终指向同一个对象,作用域为Spring中的缺省(同一package)作用域 prototype:每次通过Spring容器获取prototype定义的bean时&am…

国内外知名工业交换机品牌有哪些?

近年来,随着工业级交换机的广泛应用,各项交换机技术的不断突破,国内外很多知名通信企业都涉及到工业级交换机这一块,在市场上工业交换机的品牌可以说是很多。那么,2021年国内外知名工业交换机品牌有哪些呢?…

[渝粤教育] 九江学院 材料分析及测试技术 参考 资料

教育 -材料分析及测试技术-章节资料考试资料-九江学院【】 第二章 作业 第二单元测验 1、【单选题】光学透镜成像的基础是光可以( ) A、散射 B、反射 C、折射 D、衍射 参考资料【 】 2、【单选题】因光源的( )而导致图像模糊不清的…

无线通信中LoRa技术特点

相信对于很多朋友来说LORA通讯协议还是比较陌生的,因为LORA模块这种通讯技术是在2016年开始才正式传入中国的。现在阿里、Google、腾讯等互联网巨头都已经加入了LORA联盟,最有意思的是亚马逊,它在今年西雅图举行的硬件大会上,发布…

[渝粤教育] 九江学院 计量经济学 参考 资料

教育 -计量经济学-章节资料考试资料-九江学院【】 第1讲单元测试 1、【单选题】回归分析中关于解释变量X和被解释变量Y的说法正确的是: A、解释变量X和被解释变量Y都是随机变量 B、解释变量X和被解释变量Y都是非随机变量 C、解释变量X是非随机变量,被解释…

工业交换机是什么?矿用交换机采用的是工业级交换机吗?

随着工业交换机在各个行业领域的广泛应用,现在国内有了很多专业研发生产各种交换机的厂家,也有很多公司由于工作环境的需求需要采购工业级交换机,那么,工业交换机是什么?矿用交换机采用的是工业级交换机吗?…

react 消息队列_具有AkkaReact流的React队列

react 消息队列React性流是最近宣布的一项计划,旨在在JVM上为具有内置背压的异步流处理创建标准。 该工作组由Typesafe,Red Hat,Oracle,Netflix等公司组成。 早期的实验性实现之一是基于Akka的 。 预览版0.3包括演员生产者和消费…

lora和lorawan无线技术在物联网的应用

Lora联盟表示:“Lora设备和开放的LoRaWAN协议使智能物联网应用能够解决我们智慧城市建设面临的一些最大挑战:能源管理、自然资源减少、污染控制、基础设施效率、防灾等。” LoRaWAN的用途是什么? LoRaWAN在物联网和智慧城市部署中具有多重用途…

[渝粤教育] 云南大学 大学生创新创业教育 参考 资料

教育 -大学生创新创业教育-章节资料考试资料-云南大学【】 第一讲 单元测试 1、【单选题】学习创新创业的目的不包括( )。 A、获得物质收获 B、培养创业意识 C、激发创业精神 D、训练创新思维 参考资料【 】 2、【单选题】福特生产T型车开创了流水线生产…

LoRa无线技术与LoRaWAN网关模块的区别

有不少人分不清lorawan无线模块与LoRa网关无线传输技术到底有什么区别,他们在物联网领域的应用到底是什么样的。 LoRaWAN指的是MAC层的组网协议,而LoRa是一个物理层的协议。虽然现有的LoRaWAN组网基本上都使用LoRa作为物理层,但是LoRaWAN的协…

工业交换机和普通交换机的区别

对于交换机领域这一块,想必很多做安防的朋友不会陌生吧,交换机又分为商用网络交换机跟工业以太网交换机,为满足灵活多变的工业环境(environment)和抗干扰的方面来看,工业交换机和商业(Business)的交换机有特别大的差距&#xff0c…