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

时间:2016-06-13 20:34:43

标签: c# xml hidden

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

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

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

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

如何更改?

3 个答案:

答案 0 :(得分: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 :(得分: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;

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