28

Windows と Linux の両方でファイルとフォルダーを非表示にする必要があります。「。」を追加することは知っています。ファイルまたはフォルダーの先頭に追加すると、Linux で非表示になります。Windows でファイルまたはフォルダーを非表示にするにはどうすればよいですか?

4

7 に答える 7

24

あなたが望む機能は、今後の Java 7 の NIO.2 の機能です。

これは、必要なものにどのように使用されるかを説明する記事です:メタデータの管理 (ファイルおよびファイル ストア属性)DOS ファイル属性の例があります:

Path file = ...;
try {
    DosFileAttributes attr = Attributes.readDosFileAttributes(file);
    System.out.println("isReadOnly is " + attr.isReadOnly());
    System.out.println("isHidden is " + attr.isHidden());
    System.out.println("isArchive is " + attr.isArchive());
    System.out.println("isSystem is " + attr.isSystem());
} catch (IOException x) {
    System.err.println("DOS file attributes not supported:" + x);
}

属性の設定はDosFileAttributeViewを使用して行うことができます

これらの事実を考慮すると、Java 6 または Java 5 でそれを達成するための標準的で洗練された方法があるとは思えません。

于 2009-08-18T19:15:30.887 に答える
23

Java 6 以下の場合、

ネイティブ コールを使用する必要があります。これは Windows の場合の 1 つの方法です。

Runtime.getRuntime().exec("attrib +H myHiddenFile.java");

win32-api または Java Native について少し学ぶ必要があります。

于 2009-08-18T16:29:58.210 に答える
17

Java 7DOSこの方法でファイルを非表示にできます:

Path path = Paths.get("...");
Files.setAttribute(path, "dos:hidden", Boolean.TRUE, LinkOption.NOFOLLOW_LINKS);

以前のJavaバージョンにはこのための機能がありませんAPI

上記のコードは、DOSファイルシステム以外では例外をスローしません。ファイルの名前がピリオドで始まる場合、UNIXファイルシステムでは非表示になります。

于 2010-06-12T16:04:23.667 に答える
3

Windows では、java nio を使用して、ファイル

Path path = Paths.get(..); //< input target path
Files.write(path, data_byte, StandardOpenOption.CREATE_NEW); //< if file not exist, create 
Files.setAttribute(path, "dos:hidden", Boolean.TRUE, LinkOption.NOFOLLOW_LINKS); //< set hidden attribute
于 2016-04-07T01:45:21.623 に答える
0
String cmd1[] = {"attrib","+h",file/folder path};
Runtime.getRuntime().exec(cmd1);

このコードを使用すると、問題が解決する可能性があります

于 2013-05-15T21:03:28.367 に答える