이 문서에서는 주로 ASP 파일 이동 기능 movefile의 권한 부족에 대한 대체 방법을 소개한 다음 이를 필요로 하는 친구가 참조할 수 있는 실제 이유를 알아봅니다.
요즘 D 드라이브에 있는 모든 파일을 E 드라이브로 옮기는 명령문을 작성하는 프로젝트를 진행하고 있는데, 로컬 XP 환경에서 테스트해 보는 것이 좋습니다.
그런데 Windows 2003 서버에 올려놓으면 권한이 부족하다는 메시지가 나옵니다.
내 IIS 웹 사이트 디렉터리는 D 드라이브에 있고 E 드라이브는 새로 추가된 볼륨일 뿐입니다. 일부 파일은 매우 크고 많은데 D 드라이브가 충분하지 않아 이 전략을 생각해 냈습니다.
Baidu에서 검색한 후 이러한 문제 중 상당수는 E 드라이브의 권한을 높이거나 E 드라이브를 가상 디렉터리로 사용하는 것에 지나지 않습니다.
그러나 작동하지 않으며 알림이 여전히 존재합니다. 유일한 차이점은 동적 볼륨을 사용하는 반면 XP에서는 볼륨을 변경하고 싶지 않습니다.
마지막으로 다음 방법을 찾았습니다.
fso의 movefile을 사용하면 권한이 부족해 코드를 실행할 수 없습니다.
따라서 불필요한 문제를 피하기 위해 copyfile을 사용한 다음 deletefile을 사용하십시오.
지금 바로:
다음과 같이 코드 코드를 복사합니다.
fso=CreateObject("scripting.filesystemobject")를 설정합니다.
fso.MoveFile "파일 경로","대상"
이로 인해 문제가 발생합니다.
사용:
다음과 같이 코드 코드를 복사합니다.
fso=CreateObject("scripting.filesystemobject")를 설정합니다.
fso.CopyFile "파일 경로","대상"
fso.DeleteFile "파일 경로"
이로써 문제가 결정적으로 해결되었습니다. 복사는 가능하지만 이동할 수는 없습니다.
4.30 업데이트
약간의 수정 끝에 E 드라이브의 권한 문제가 아니라 D 드라이브의 권한 문제, 즉 IIS 웹 사이트 디렉터리의 권한 문제인 것으로 밝혀졌습니다.
D 드라이브에 인터넷 게스트 계정을 추가합니다. 즉, IUSR_로 시작하는 계정을 추가합니다. 이 계정은 IIS 계정입니다.
그러면 MoveFile을 사용하는 데 문제가 없습니다.
파일을 이동하거나 삭제하려면 먼저 대상 파일의 권한이 아닌 원본 파일의 권한을 확인해야 합니다.
인터넷의 튜토리얼은 정말 해롭습니다.