在C#中创建一个隐藏的Xml文件

3

我创建了一个XML文件,但问题是我需要它成为一个隐藏文件,

现在我可以看到该XML文件在文件夹中,并且可以点击等操作。

我的代码:(这是创建XML文件的代码)

XDocument doc; 
doc = 
   new XDocument(
   new XDeclaration("1.0", "utf-8", "yes"),
   new XElement("files"));
doc.Save(xmlPath);`

我该如何更改它?


3
你希望它有多隐蔽?只是在正常的文件系统术语中吗? - Jon Skeet
1
@JonSkeet 发布了答案,我很愿意投票支持您。 - Bassam Alugili
2
@Rakitić:当问题没有被澄清时,我该如何回答呢?我们不知道他们为什么想要隐藏它,或者需要多高的安全性。如果一个简单的隐藏文件就足够了,那很好 - 但对于任何重要的东西来说,这种保护措施都相当薄弱。 - Jon Skeet
2
@BassamAlugili:不,我不会回答一个问得很差的问题;这样鼓励用户并不是一个好主意。你可能不指望新用户问好问题,但我希望能够让他们达到一个合理的标准。 - Jon Skeet
2
@BassamAlugili:不好意思,我还是不打算回答这个问题,因为它太模糊了,无法给出一个好的答案。 - Jon Skeet
显示剩余5条评论
3个回答

5
  FileAttributes attributes = File.GetAttributes(xmlPath);
  // Hide the file.
  File.SetAttributes(path, File.GetAttributes(path) | FileAttributes.Hidden);
  Console.WriteLine("The {0} file is now hidden.", path);

1
谢谢你的回答,它帮了我很多。 我非常感激你的帮助。 - Shira Asulin
如果这篇内容真正帮助您解决了问题,请标记它为答案,非常感谢! - Bassam Alugili

1

在保存文件之前,如果文件被隐藏或设置为只读,您需要先调整(取消隐藏)权限。因此,您需要执行类似以下操作:

private void RemoveHiddenNReadOnly()
{
    if (File.Exists) // File here is the FileInfo of the xml file for the class
    {
        File.Attributes &= ~FileAttributes.Hidden; // Remove Hidden Flag 
        File.Attributes &= ~FileAttributes.ReadOnly; // Remove ReadOnly Flag
    }
}

然后保存文件,再次设置隐藏标志。
doc.Save(File.FullName); 
File.Attributes |= FileAttributes.Hidden;

0
FileAttributes attributes = File.GetAttributes("data.xml");

//To Hide the file
File.SetAttributes("data.xml", File.GetAttributes("data.xml") | FileAttributes.Hidden);

//and to unhide the file
if ((attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
{
    attributes &= ~FileAttributes.Hidden;
    File.SetAttributes("data.xml", attributes);
}

在这种情况下,“data.xml”位于调试文件夹中,但您可以将其更改为您的文件所在的路径 ->字符串路径=“C:\ Users \ User \ App .... \ filename.ext”


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