2013-06-21 2 views
0

다음과 같은 시나리오가 있습니다. SMB 공유에 연결된 Windows 클라이언트가 있습니다. 재귀 적으로 그 공유에있는 디렉토리에 파일을 가지고 뭔가를하기를 원한다. (특정 크기가 초과되면 sha1 해시를 계산하는 것을 상상해 보라).재귀 적으로 연결된 디렉토리를 찾는 방법은 무엇입니까?

정상적으로 수행 할 작업 : 재귀 dirInfo.EnumerateDirectories() 무단 액세스와 같은 예외적 인 경우를 잡아 파일을 운영자 스레드에 대기시킵니다 (sha1을 계산할 때).

과제 : 재귀 심볼릭 링크. 내 testscenario 내가 시도 무엇

[email protected]:~$ ls -l /home/me/tmp/recursionStartsHere 
lrwxrwxrwx recursion -> /home/me/tmp/recursionStartsHere 

매우 간단합니다 (떨어져 googlin에서) (물론)이 작동하지 않습니다 심볼릭 링크를 감지 dirInfo.Attributes.HasFlag(FlagAttributes.ReparsePoint)을 사용하는 것입니다. 무차별 접근법은 내용에서 누적 된 체크섬이있는 모든 단일 디렉토리를 인덱싱하는 것과 같으며 충돌이 없을 수도 있습니다.

실용적인 아이디어가 이제 없어졌습니다. 어떻게 특정 디렉토리에 심볼 링크 만 있다고 말할 수 있습니까? 물론 플랫폼 독립적 인 것을 선호하므로 내 코드가 원격 SMB와 로컬 NTFS 드라이브에서 동일하게 작동합니다.

답변

관련 문제