在我的C#应用程序中,我已经有办法检查文件系统,但我想利用从主文件表(MFT)读取,因为它更快.我理解1)它是专有规范,因此如有更改,恕不另行通知; 2)只有在应用程序在管理权限下运行时才能访问它.
我设法通过此代码读取主文件表.从MFT查询中,我得到一个文件名和一个所谓的文件引用号.我找不到的是如何转换到.NET FileInfo对象,甚至转换到Windows API文件句柄,以便我可以获得有关文件/文件夹的更多信息,例如:文件大小,完整路径,日期邮票等
比方说我有:
using(DbDataReader reader = getReader("SELECT * FROM Cmds", out DbCommand cmd))
{
}
Run Code Online (Sandbox Code Playgroud)
我在哪里写了一个帮助方法,getReader以获得一个DbDataReader和一个DbCommand.在这种情况下,using语句是否调用Dispose输出参数cmd?如果没有,是否有一种简洁的方法来实现,而不是像:
DbCommand cmd = null;
try
{
using(DbDataReader reader = getReader("select value from cmds where typeid = 2;", out cmd))
{
}
}
finally
{
cmd?.Dispose();
}
Run Code Online (Sandbox Code Playgroud)
我可以返回包含两个一次性对象的元组,还是只会混淆using声明?
我查看了MSDN的C#using语句文档,但没有提到out表达式中获得的参数.