我想在文件系统中添加和检索文件的标签。
由于您可以将Stackoverflow问题标记为相关主题,因此您可以在Windows文件系统中标记文件:
以下方法不允许我访问文件的标记,而只访问其他文件属性。
string file = @"C:\Users\me\Desktop\MyFile.doc";
FileInfo oFileInfo = new FileInfo(file);
MessageBox.Show(oFileInfo.FullName);
有关如何使用System.IO
的简单API
答案 0 :(得分:1)
您可以将Stackoverflow问题标记为相关主题 在Windows文件系统中标记文件
这个假设是错误的。您无法为所有文件类型添加标记。见here:
请注意
您无法添加或修改某些类型文件的文件属性。 例如,您可以添加或修改Microsoft的属性 Office文档和搜索,但您无法添加或修改 TXT或RTF文件的属性。
除了提到的类型之外,还有其他类型可以包含自定义标签:
编辑/添加/删除这些标签应该使用专用库来完成。
This post有一个很好的解释:
在Windows资源管理器中,您可以看到相当多的文档属性 许多文件类型。漂亮,统一的界面表明存在 一些统一的物业商店。事实并非如此。资源管理器 Shell为Property Sheet Handlers提供了一个可扩展的接口 从各种文件类型中提取此信息。有一个处理程序 对于JFIF(JPEG)文件,还有OLE文件的处理程序(旧的 Office格式),以及新的Office格式。
此post shows OP如何通过public View getView(int position, View convertView, ViewGroup parent) {
if(convertView == null){
convertView = inflater.inflate(R.layout.layout_faq_item, parent, false);
}
FAQObject faq = faqList.get(position);
convertView.setTag(faq);
convertView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FAQObject faq = (FAQObject) view.getTag();
if(faq.isExpanded()) {
view.findViewById(R.id.text_faq_answer_title).setVisibility(View.GONE);
view.findViewById(R.id.text_faq_answer_content).setVisibility(View.GONE);
((TextView)view.findViewById(R.id.text_faq_question)).setCompoundDrawablesWithIntrinsicBounds(0,0,
android.R.drawable.arrow_down_float, 0);
faq.setExpanded(false);
}else{
((TextView)view.findViewById(R.id.text_faq_question)).setText(faq.getQuestion());
((TextView)view.findViewById(R.id.text_faq_answer_content)).setText(faq.getAnswer());
view.findViewById(R.id.text_faq_answer_title).setVisibility(View.VISIBLE);
view.findViewById(R.id.text_faq_answer_content).setVisibility(View.VISIBLE);
((TextView)view.findViewById(R.id.text_faq_question)).setCompoundDrawablesWithIntrinsicBounds(0,0,
android.R.drawable.arrow_up_float, 0);
faq.setExpanded(true);
}
}
});
return convertView;
}
成功添加标记。