2008-09-22 3 views
3

저는 C++을 사용하고 있고 네트워크에서 UNC 경로에 액세스하고 있습니다. 이 경로는 MAX_PATH보다 약간 큽니다. 그래서 파일 핸들을 얻을 수 없습니다.Windows 네트워크에서 MAX_PATH에 가까운 파일 액세스

하지만 문제의 컴퓨터에서 프로그램을 실행하면 경로가 MAX_PATH보다 크지 않습니다. 그래서 파일 핸들을 얻을 수 있습니다. 파일의 이름을 더 적은 문자 (컴퓨터 이름의 길이를 뺀 길이)로 바꾸면 파일에 액세스 할 수 있습니다.

UNC 경로의 컴퓨터 이름이 MAX_PATH 한도를 초과하더라도이 파일을 네트워크에서 액세스 할 수 있습니까?

답변

10

MAX_PATH 한계를 극복하기 위해 경로 시작 부분에 \\?\을 사용하는 것과 같은 몇 가지 기능이 있음을 상기했습니다. \\?\unc\server\share\path\file : 원격 시스템에 대한

http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

이 같은 경로 이름을 사용, 다음은 MSDN의 참조입니다. \\?\unc\은 특수 접두어이며 실제 파일 이름의 일부로 사용되지 않습니다.

+0

로컬 경로로 사용하지만 원격 컴퓨터에 적용되는지 여부는 확실하지 않습니다. –

0

파일 이름을 짧은 (8.3) 파일 이름으로 변환 한 후 파일을 열려고하면 파일을 처리 할 수 ​​있습니다. 파일을 드라이브로 가져 와서 파일에 액세스하면 해당 디렉토리를 매핑 할 수 있습니까?

관련 문제