두 개의 디렉토리 folder1과 folder2가 있습니다. folder1은 파일을 포함합니다. folder2 \ folder1 결과를 folder2 아래에 folder1 이동하고 싶습니다. 아래 C# 코드로이 작업을 수행하려고하면 다음과 같이 나타납니다.디렉토리를 이동하려고 할 때 액세스가 거부되는 이유는 무엇입니까?
System.IO.IOException : 'E : \ www \ dev \ test \ MoveDirectories \ folder1'경로에 대한 액세스가 거부되었습니다.
관련 코드 :
// In Page_Load.
MoveDirectory("folder1");
// Method for moving directories.
protected void MoveDirectory(string strMoveThis)
{
try
{
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(Server.MapPath(strMoveThis));
dir.MoveTo(Server.MapPath("\\folder2\\"));
}
catch (Exception ex)
{
Response.Write(ex);
}
}
내 ASP.NET 4.0 응용 프로그램 풀은 폴더 1에 대한 권한을 수정할 수 있습니다. 이것은 실제로 훨씬 더 큰 응용 프로그램에서 가져온 코드가있는 테스트 응용 프로그램이므로 예상되는 모든 테스트 및 예외 처리가 필요하지 않습니다.
편집 : folder1 내에 파일을 만들 수 있음을 발견했습니다.
dir.MoveTo(Server.MapPath("\\folder2\\"));
이에
:
dir.MoveTo(Server.MapPath("folder2\\" + strMoveThis));
동일한 권한이 있고 더 나은 형성
다른 프로세스가 파일을 잠글 수 있습니까? – tezromania
File Exporer를 연 상태라면 파일 닫기를 시도하십시오. 프로세스가 폴더를 잠글 수 있습니다. – JayL
@tezromania : 나는 그것을 생각하고 있었지만, 나는 그 폴더를 사용할 수있는 모든 프로세스를 닫았다고 생각한다. – mrcoulson