41 import java.nio.ByteBuffer;
42 import java.nio.charset.Charset;
43 import java.nio.file.*;
44 import java.nio.file.attribute.*;
45 import java.io.IOException;
54 System.out.println(
"Usage: java Xdd <file>");
55 System.out.println(
" java Xdd -set <name>=<value> <file>");
56 System.out.println(
" java Xdd -get <name> <file>");
57 System.out.println(
" java Xdd -del <name> <file>");
61 public static void main(String[] args)
throws IOException {
63 if (args.length != 1 && args.length != 3)
66 Path
file = (args.length == 1) ?
67 Paths.get(args[0]) : Paths.get(args[2]);
70 FileStore store = Files.getFileStore(
file);
71 if (!store.supportsFileAttributeView(UserDefinedFileAttributeView.class)) {
72 System.err.format(
"UserDefinedFileAttributeView not supported on %s\n", store);
76 UserDefinedFileAttributeView view =
77 Files.getFileAttributeView(
file, UserDefinedFileAttributeView.class);
80 if (args.length == 1) {
81 System.out.println(
" Size Name");
82 System.out.println(
"-------- --------------------------------------");
83 for (String
name: view.list()) {
84 System.out.format(
"%8d %s\n", view.size(
name),
name);
90 if (args[0].equals(
"-set")) {
92 String[] s = args[1].split(
"=");
97 view.write(
name, Charset.defaultCharset().encode(value));
102 if (args[0].equals(
"-get")) {
103 String
name = args[1];
105 ByteBuffer buf = ByteBuffer.allocateDirect(
size);
106 view.read(
name, buf);
108 System.out.println(Charset.defaultCharset().decode(buf).toString());
113 if (args[0].equals(
"-del")) {
114 view.delete(args[1]);