如何在C#中隐藏文件?

43
我想在C#中隐藏一个文件。我知道文件路径,也可以创建FileInfo对象。
我该怎么隐藏它?
5个回答

86

之前被接受的答案:

File.SetAttributes(path, FileAttributes.Hidden);

将其它可能存在的属性丢失,因此您应该:

File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.Hidden);

但是当我从Windows更改设置以显示隐藏文件时,它会被发现。 我希望以这种方式隐藏,即使我们启用了显示隐藏文件,也无法看到。 - Adit Kothari
@AditKothari 可以通过删除文件来实现。 - Olorin
通过按位“OR”操作,这将始终导致隐藏被打开,对吗?而不仅仅是切换它?要切换它,您会使用按位AND吗? - omJohn8372
2
@omJohn8372:不!按位与将清除除Hidden以外的所有标志。你要找的是按位异或(^)。 - DevSolar

33
File.SetAttributes("pathToFile",FileAttributes.Hidden)

6
    FileInfo f = new FileInfo(myFileName);
    f.Attributes = FileAttributes.Hidden;

4

可以试试这样做:

FileInfo fi = new FileInfo(somefile);                
fi.Attributes = FileAttributes.Hidden;

4
< p >如果用户的Windows设置为显示隐藏文件,则 FileInfo 隐藏属性可能有些无用。更建议将文件移动到新路径,特别是用户不经常浏览的路径,如 C:\ Program Files \ Common Files 或任何您认为用户较少访问的路径,然后再隐藏文件。 < / p >

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接