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

Create an hidden Xml file in c#

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

现在我在文件夹中看到了XML文件,可以点击它等等

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

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

如何更改?

  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);

在保存文件之前,如果它是隐藏的或只读的,您必须先修复(取消隐藏)权限。所以你需要做这样的事情:

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;
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”位于调试文件夹中,但您可以将其更改为文件所在的路径 -> String path = "C:\Users\User\App.. ..\filename.ext"