0
Windows 공유 폴더에서 UNC 경로로 파일 본문을 읽으려고하는데이 예외가 발생합니다. The process cannot access the file '\\<someIP>\logs\LogFiles\W3SVC1\u_ex141017.log' because it is being used by another process.
그러나이 파일은 실제로 어떤 프로세스에서도 잠그지 않습니다.공유 파일에 액세스 하시겠습니까?
var logFile = File.ReadAllText(logPath);
및
var logFile = (string)null;
using (var fileStream = new FileStream(logPath, FileMode.Open, FileAccess.Read, FileShare.Delete))
{
using (var reader = new StreamReader(fileStream))
{
logFile = reader.ReadToEnd();
}
}
(모두 실패)
: 나는 파일을 읽기 위해이 코드를 사용하고나는 등의 텍스트 편집기를 사용하여 내 PC에서 볼 수 있습니다
파일이 어떤 프로세스에 의해 정말로 잠겨 있지 않을 때이 예외가 발생할 수있는 이유는 무엇입니까?
FileShare.ReadWrite는 FileShare.Delete보다 액세스가 더 제한적이므로이 방법이 작동하지 않는다고 생각했습니다. 하지만 그렇습니다. 왜? – user626528
사실 Delete와 ReadWrite는 완전히 다른 두 가지를 의미합니다. MSDN에서 : http://msdn.microsoft.com/en-us/library/system.io.fileshare(v=vs.110).aspx ** 삭제 : ** 후속 파일 삭제를 허용합니다. ** ReadWrite : ** 읽기 또는 쓰기를 위해 파일을 여는 것을 허용합니다. –