我希望能够将自己的自定义数据/属性添加到NTFS上的现有文件夹中,这样,如果移动文件夹,属性就会随之移动。一种解决方案是将文件存储在文件夹中以包含我需要或想要的任何内容。
我特别感兴趣的是,是否有办法将自定义属性添加到目录文件系统对象本身。
答案 0 :(得分:2)
如果你感到勇敢(或愚蠢),或许Alternative Data Stream可能是另一种选择。
我不确定是否可以将其应用于目录而不是普通文件,而且需要考虑的问题是:
快乐的编码。
答案 1 :(得分:2)
以下是c#中显示文件自定义属性的方法
DSOFile.OleDocumentPropertiesClass file = new DSOFile.OleDocumentPropertiesClass();
file.Open(@"C:\setup.exe", false, DSOFile.dsoFileOpenOptions.dsoOptionDefault);
string key = "key1";
object value = "value1";
// Adds new custom property.
file.CustomProperties.Add(key, ref value);
// Go through existing custom properties.
foreach (DSOFile.CustomProperty p in file.CustomProperties)
{
Console.WriteLine("{0}:{1}", p.Name, p.get_Value().ToString());
}
file.Close(true);
首先在file.CustomProperties.Add(key,ref value); 通过修改属性键(属性,您可以修改它,以下是以下内容)。 在key中你应该放置以下attribute_names之一,这里的名称来自其真实值的名称
Const FILE_ATTRIBUTE_READONLY = 1
Const FILE_ATTRIBUTE_HIDDEN = 2
Const FILE_ATTRIBUTE_SYSTEM = 4
Const FILE_ATTRIBUTE_DIRECTORY = &H10
Const FILE_ATTRIBUTE_ARCHIVE = &H20
Const FILE_ATTRIBUTE_ENCRYPTED = &H40
Const FILE_ATTRIBUTE_NORMAL = &H80
Const FILE_ATTRIBUTE_TEMPORARY = &H100
Const FILE_ATTRIBUTE_SPARSE_FILE = &H200
Const FILE_ATTRIBUTE_REPARSE_POINT = &H400
Const FILE_ATTRIBUTE_COMPRESSED = &H800
Const FILE_ATTRIBUTE_OFFLINE = &H1000
Const FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = &H2000
然后,您应该将所需的值分配给常量,值
然后查看每个文件的每个属性,在行
上显示它们Console.WriteLine("{0}:{1}", p.Name, p.get_Value().ToString());