Ошибка "файл не найден" при доступе к некоторым файлам, хотя они существуют и доступ через проводник / CMD-box работает.
Привет,
У меня есть следующая проблема, которая возникает только на некоторых файлах в C:\Windows\system32 справочник.
Затронутые файлы, например hal.dll, hardres.dll, HalExtIntcLpioDMA.dll, HalExtPL080.dll-да.
Когда я пытаюсь получить доступ или скопировать один из этих файлов, я всегда получаю сообщение об ошибке "файл не найден", даже если файлы присутствуют и я могу получить к ним доступ через проводник. Копирование с помощью команды copy в окне cmd также работает.
Это работает не только с программой, написанной на C #.
Разрешения NTFS для hal.dll и еще help.exe они идентичны.
Есть идеи?
Спасибо за помощь.
Что я уже пробовал:
Я попробовал следующие варианты в C#, чтобы проверить, присутствует ли файл.
Внутренние функции C# :
File.Exists (pFileName) -> returns false fi = FileInfo (pFileName) FileInfo.Exists -> returns false File.Copy ... Error: File not found
Win32API:
[DllImport ("shlwapi.dll", CharSet = CharSet.Unicode, EntryPoint = "PathFileExistsW")] public static extern Int32 PathFileExists (String pszPath); Int32 x = PathFileExists (pFileName) -> returns 1 (error)
внешний процесс:
var psI = new ProcessStartInfo { CreateNoWindow = true, Arguments = @"/c copy C:\Windows\system32\hal.dll C:\Temp\hal.dll", FileName = @"C:\Windows\system32\cmd.exe", RedirectStandardError = true, RedirectStandardOutput = true, } proc.StartInfo = psI; proc.Start(); if (psI.RedirectStandardError) { var sErrStream = proc.StandardError.ReadToEnd(); sbOutPut.Append("ExitCode (" + proc.ExitCode + ") : " + sErrStream); } proc.WaitForExit(); Console.WriteLine(sbOutPut.ToString()); proc.Close(); -> returns exit code 1 (File not found)
Richard MacCutchan
У меня такое чувство, что эти файлы защищены от хакеров и вирусов.