RestrictLinkExtensions
Windows 상에서 링크들의 확장자를 ".lnk"로 제한합니다.
헤더: IOMain.hpp
void RestrictLinkExtensions ( void );
설명
Location로부터 File 또는 Folder 인스턴스가 생길 때마다 링크들이 자동으로 해결(resolve)됩니다
그러나 Windows 상에서 파일 시스템 엔트리가 링크인지 여부를 결정하는 것은 상당히 느립니다.
왜냐하면 네이티브 파일 시스템은 파일과 폴더만 갖고 있고, 링크는 반드시 검사해야 하는 특수한 내용을 가진 파일 (및 폴더)입니다.
Windows 상에서 링크는 반드시 확장자 ".lnk"를 가져야 한다는 일반적인 가정을 이용하면 링크 검사를 상당히 빠르게 진행할 수 있습니다.
이것은 ".lnk"가 아닌 확장자를 가진 파일 시스템 엔트리는 링크가 아니며, (파일 또는 폴더로 간주함)
확장자 ".lnk"를 가진 파일 시스템 엔트리는 링크일 수도 있으며 그 내용은 더 자세히 조사하게 될 것입니다.
이것은 대부분의 애플리케이션에서 채택되는 합리적인 가정입니다.
기본적으로 InputOutput 모듈은 링크의 확장자에 대한 어떤 제한도 노출하지 않습니다. 이 함수는 Windows 구현에게 앞의 가정을 사용하도록 지시합니다. (다른 플랫폼에서는 효과가 없음) 이것은 몇 가지 결과를 가지고 있습니다:
- Folder class의 CreateLink 메소드는 ".lnk"가 아닌 확장자를 가진 링크를 생성할 수 없게 됩니다.
- FileSystem class의 ResolveLocation 메소드는 잠재적인 링크 resolvation을 위해 확장자 ".lnk"를 가진 파일 시스템 엔트리들만 검사할 것입니다.
- Folder와 FileSystem class의 GetType과 GetResolvedType 메소드는 잠재적인 링크 타입에 대한 확장자 ".lnk"를 가진 파일 시스템 엔트리들만 검사할 것입니다.
- File과 Folder 생성자들은 확장자 ".lnk"를 가진 파일 시스템 엔트리들에 대해서만 자동 resolvation을 시도할 것입니다.
- Windows 상에서 특수 폴더 링크(특수 내용을 가진 폴더)들은 일반적으로 ".lnk" 확장자를 갖고 있지 않습니다. 이 링크들은 인식되지 않게 되지만, 주로 (시스템) 파일 다이얼로그에서만 고려되고 해결(resolve)됩니다.
이 함수는 최적화 목적을 위해서만 사용되며 향후 효과가 없거나 줄어즐 수 있으므로 그 특성과 결과에 어떤 식으로든 의존하지 마십시오.