2011-11-25 3 views
0

학교에서 프로젝트를하고 있는데 Windows XP에서 파일을 삭제하려고합니다.경로에 대한 액세스가 거부되었습니다.

그러나 파일의 특성을 설정 한 후에도이 오류가 발생합니다. 경로에

액세스

파일이 C:\Document and Settings\%user%\Local Settings\Temp에 "거부됩니다. 다른 프로그램을 사용하는 것을 의미

어떻게 해결 될 수 있는가?

if(File.Exists(filePath)) 
{     
    FileSecurity sec = File.GetAccessControl(filePath); 
    sec.AddAccessRule(new FileSystemAccessRule(Environment.UserName, 
        FileSystemRights.FullControl, AccessControlType.Allow)); 
    File.SetAccessControl(filePath, sec); 
    File.SetAttributes(filePath, FileAttributes.Normal); 
    File.Delete(filePath); 
} 
+0

예외를 throw하는 코드 행은 무엇입니까? – mjwills

+0

삭제할 파일이 ReadOnly인지 반드시 확인하십시오. 그렇다면 파일을 완전히 제어하더라도 오류가 발생합니다. – Peter

답변

0

파일
삭제하기 전에 파일 (또는 전체 프로그램)을 닫아야합니다.

프로그램이 파일을 사용하는 경우 스트림을 닫아야합니다 (교차하지 않음).

+0

FileAccess 문제가 아니라 경로에 대한 액세스입니다 (필 수). – Polity

+0

반드시 그렇지는 않습니다. 사용자가 비 관리자 (XP가 지원함)로 실행 중이며 액세스 규칙을 변경하거나 다른 사용자의 폴더에 액세스 할 수있는 권한이 없음을 의미 할 수 있습니다. –

+0

@Polity : 그는 항상'C : \ Document and Settings \ % user % \ Local Settings \ Temp'에 접근해야합니다. – SLaks

2

FileSecurity는 파일 자체에 대한 사용 권한을 설정합니다. Thats all great하지만 삭제할 권한이 있다는 것을 의미하지는 않습니다. 앱을 관리자로 실행하여 차이가 있는지 확인해보십시오.

0

"admin"또는 파일을 삭제할 수있는 관련 권한이 있는지 확인하십시오.

관리자 권한이있는 경우 언급 한 파일에 다른 "권한"이 있는지 확인하십시오. 예 : 몇 가지 MS 파일을 삭제할 수 없습니다.

올바른 파일 이름을 지정했는지 확인하십시오.

이 파일을 모두 확인한 경우 파일을 열었거나 코드에서 삭제하지 않았 으면 삭제할 수 있습니다.

위의 해결 방법이 작동하지 않는 경우에도이 파일이 손상되었거나 다른 사용자 또는 사용자가이 파일을 아직 사용하고 있지 않습니다.

0

지금까지 코드 블록은 괜찮습니다.

그러나 아래 내용을 염두에 두십시오.

a. Windows XP의 경우 사용자가 로그인 한 상태에서 - 사용자가 관리자 그룹에 속해 있고 사용자가 관리자 액세스 권한을 가지므로 사용자가 실행중인 모든 응용 프로그램에 관리자 권한이 부여됩니다.

b. Vista, Windows 7과 같은 다른 업데이트 된 Windows의 경우 응용 프로그램을 마우스 오른쪽 단추로 클릭하고 팝업에서 "관리자 권한으로 실행"을 클릭하고 개발 시간을 확인한 후 IDE로 관리자로 실행하십시오.).

희망이 있으면 도움이 될 것입니다.

관련 문제