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获取项目根目录

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

  1. Java中动态获取项目根目录和tomcat的绝对路径

    序言 在开发过程中经常会用到读写文件,其中就必然涉及路径问题.使用固定的绝对路径当然很方便,但会导致程序的可移植性差,比如在代码中写死了要在E盘建一个文件,而移植后的环境中木有E盘,那就只能改代码:又 ...

  2. Weblogic部署web项目获取项目根目录为null

    写在前面 图片上传功能, web项目部署在本地Tomcat上并没有问题, 但是打成war包部署到Linux服务器Weblogic下却出现如题问题, 导致图片上传失败. 问题代码 String real ...

  3. JSP中获取项目根目录

    JSP中获取项目根目录可以用EL表达式:${pageContext.request.contextPath}, 等价于JSP中的 <%=request.getContextPath()%> ...

  4. 百度ueditor编辑器动态获取项目根目录

    编辑器的 jsp\config.json 文件里面有个 imageUrlPrefix 这里指定的是"上传图片访问路径前缀",即项目根目录,如果是跨域(远程)操作的话,需要写上服务器 ...

  5. java获取项目绝对路径_如何获取项目绝对路径?

    展开全部 用Jsp获取.用Java类获取或用servlet获取项目绝对32313133353236313431303231363533e4b893e5b19e31333363396465路径. 一.用 ...

  6. java gradle maven_java – 如何使gradle在maven用户的项目根目录下生成一个有效的pom.xml文件?...

    在现在只有两天的时间里,我绝对出售了我所有Java项目的毕业生,并从我所有项目的根目录中删除pom.xml. 然而,我想保持与maven兼容,在某种意义上,我希望一个毕业生的任务能够在用户想要的项目根 ...

  7. 设置VS解决方案资源管理器文件分目录显示

    选择"项目/显示所有项目"可以在"文件分目录显示模式"和"显示所有文件列表模式"之间切换,如下图: [显示所有文件列表模式] [文件按分目录 ...

  8. Freemarker获取项目根目录

    在SpringMVC框架中使用Freemarker视图时,要获取根路径的方式如下: <!-- FreeMarker视图解析 如返回userinfo..在这里配置后缀名ftl和视图解析器.. -- ...

  9. JavaSE:如何设置/获取您自己的文件和目录属性

    在上一篇文章"确定特定文件系统支持的视图"中 ,了解如何询问文件系统存储,并了解特定文件属性视图的可支持性. 简而言之,我们将探索最高级和重要的文件属性视图之一,即用户定义的文件属 ...

最新文章

  1. Cisco *** 完全配置指南-连载-PIX和ASA连接的故障诊断与排除
  2. 研究你为啥看着淘宝想剁手,阿里达摩院论文登上NeurIPS 2019
  3. Android Studio快捷键——编辑篇
  4. 格力的“阵痛”与“头痛”
  5. 逆向工程-真码保存在系统文件破解QQ游戏对对碰助手
  6. 基于Python+Django的企业人事管理系统
  7. kkFileView ---- 文件预览开源项目
  8. python的图像傅里叶变换 np.fft.fft2 cv.dft 函数
  9. vba动态二维数组_VBA学习笔记19:数组1
  10. linux编写python脚本_在ubuntu linux 中编写一个自己的python脚本
  11. 一起学习“秋叶的如何成为PPT高手”
  12. 北京邮电大学计算机学院考研调剂,2020考研调剂信息:北京邮电大学计算机学院招生信息...
  13. 十天内提高单词量到20000! (Vocabulary 10000)
  14. windows时间与Internet时间不同步
  15. 国有企业数字化转型建设方法论
  16. iphone11的计算机在哪,iPhone11怎么连接电脑?iPhone11信任并连接电脑图文教程
  17. PAT (Basic Level) 1018 锤子剪刀布 (20 point(s))
  18. 美国大数据下的中国女人,结果令人吃惊!
  19. webmatrix安装_上下文中的Microsoft WebMatrix和部署您的第一个站点
  20. 爬取新浪网股票并实现图形化2.0(pyqt5)

热门文章

  1. 洛谷P1434-滑雪【线性化Dp】
  2. P4062 [Code+#1]Yazid 的新生舞会(区间绝对众数+分治/树状数组维护高维前缀和)
  3. ARC107——D - Number of Multisets
  4. 纪中A组模拟赛总结(2021.7.15)
  5. 【归并排序】奶牛的图片(jzoj 1812)
  6. 【并查集】银河英雄传说 (luogu 1196/ssl 1225)
  7. 【DP】花店橱窗布置 (ssl 1626/luogu 1854)
  8. JavaFX UI控件教程(十五)之Combo Box
  9. 干货 | 彻底弄懂 HTTP 缓存机制及原理
  10. 如何用spring boot写一个注册页面