2

私はすでにこれを見ましたが、この問題を完全に解決するわけではありません。すべての検索を読み込んで、フォルダ コンパイラ meg をインクルードすると、Unauthorized に関する例外がスローされます。エラー スロー コンパイラ:

パス F:\System Volume information \ へのアクセスが拒否されました

私のコードは

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ドライブにSystem Volume Informationフォルダーがないことです。なぜこのタイプの例外をスローするのですか?

4

1 に答える 1

1

エクスプローラーで「dir」を実行したりファイルを調べたりしても、非表示+システムフォルダーは表示されませんが、そこにないという意味ではありません。

「システムボリューム情報」は、Windowsがタッチする非読み取り専用ディスクに存在し、管理者でさえアクセスできないようにアクセス許可を設定します(また、所有権を取得することで、他の保護された場所と同じようにアクセスできます)。およびアクセスの追加)。

一般に、「アクセスが拒否されました」などのIOエラーを予期し、適切に処理する必要があります。つまり、ファイルの列挙中にすべてのIO例外を単に無視しても問題ない場合があります。

そのフォルダの属性を表示するには、次のコマンド(CMDコンソールに入力)を使用することに注意してください。

cd f:\ /d && attrib "System Volume Information"
于 2013-03-08T21:51:41.680 に答える