2009-10-06 2 views
3

File.WriteAllText을 리모트 패스로 이동하면, UnauthorizedAccessException가 슬로우됩니다. 메모장에서 파일을 열면 문제없이 편집 할 수 있습니다. 파일을 수정하려는 프로세스가 내 자신의 사용자 계정으로 실행 중이므로 액세스 할 수 있어야합니다.File.WriteAllText가 UnauthorizedAccessException을 슬로우한다

path specified a file that is read-only. 

-or- 

This operation is not supported on the current platform. 

-or- 

path specified a directory. 

는 이러한 조건 중 하나가 문제의 원인 가능 :

+0

문제 해결을위한 코드 게시 –

+0

게시 할 내용이 없으므로 파일이 아닌 (디렉터리가 아닌) File.WriteAllText를 간단하게 호출합니다. 그것은 다른 프로세스에 의해 열릴 수도 있지만 메모장에서 성공적으로 수정되므로 잠겨서는 안됩니다. – ripper234

답변

7

MSDN에 따르면, UnauthorizedAccessException도 발생할 수 있습니다?

+1

아, 맞아, 그것은 디렉토리 였어. 바보 나. – ripper234

1

다른 프로세스 나 스레드에 의해 파일이 잠겨 있으면이 예외가 발생한다고 생각합니다.

다른 사람이 쓰기를 금지하는 방식으로 파일을 열지 않았는지 확인하십시오. 메모장은 파일이 잠겨 있는지 여부를 확인하기위한 좋은 테스트가 아닙니다. 잠긴 파일을 열 때입니다 (예 : 읽기 전용 파일이 좋음).

+0

메모장에서 실제로 파일을 편집 할 수 있습니다. .NET에서 왜 수정할 수 없습니까? – ripper234

+1

파일을 저장하려고합니다. 메모장은 독점적 인 읽기 (아주 드물다)를 위해 잠겨 있지 않는 한 항상 파일을 열 것입니다. 그러나 정상적으로 저장하지 못할 것입니다. SaveAs를 사용해야합니다 ... –

10

UnauthorizedAccessException 또한 파일에 "숨김"속성이 설정된 경우 발생합니다. 이유를 묻지 마시오.

+0

정말 고마워요. ! 나는이 코드의 첫 번째 이후의 모든 호출이 unauth로 실패하는 이유를 궁금해한다. File.WriteAllText (tempFilePath, exportCommand); \t \t \t File.SetAttributes (tempFilePath, FileAttributes.Hidden); – rbuddicom

+0

@Hellfire 이것이 도움이된다면, upvote는 미래의 방문자가 답을 더 빨리 찾을 수있게 도와 주며 나 또한 높이 평가할 것입니다;) –

+0

죄송합니다. :) – rbuddicom

관련 문제