我已经看过this,但还没有完全解决这个问题。当我读取所有find和include文件夹时,编译器会抛出一个关于Unauthorized的异常。错误抛出编译器:
访问路径F:\ System Volume information \ is Denied
我的代码是
private void toolStripButton8_Click(object sender, EventArgs e)
{
try
{
Uri _urii = new Uri(toolStripTextBox1.Text);
// MessageBox.Show(_urii.Host);
string _sthost = _urii.Host;
string aa = "F:\\" + _sthost + " ";
string[] _file = Directory.GetFiles("F:\\", "*.txt", SearchOption.AllDirectories); //Exception here create
foreach (var item in _file)
{
MessageBox.Show(item.Length.ToString());
我的问题是 F 驱动没有系统卷信息文件夹..为什么抛出这种类型的例外?
答案 0 :(得分:1)
当您执行“dir”或查看资源管理器中的文件时,隐藏+系统文件夹不会显示,但这并不意味着它们不存在。
“非系统卷信息”存在于非只读磁盘上Windows触摸和权限设置,即使管理员也没有访问权限(您也可以获得一个 - 与任何其他受保护位置相同 - 通过获得所有权和添加访问权限。)
通常,您应该期望IO错误,例如“拒绝访问”并适当地处理它们。即在文件枚举期间忽略所有IO异常可能没问题。
注意使用此命令(键入CMD控制台)查看该文件夹的属性:
cd f:\ /d && attrib "System Volume Information"