[string pathExtension]
을 사용하여 파일 확장자를 가져 오려고하지만 확장자 자체가 항상 반환되는 것은 아닙니다. 예 : 'Example.png'라는 파일이 있습니다.이 메서드를 사용하면 'png'가 올바른 것입니다. 이제 'Example'과 같은 확장자가없는 파일이 있다고 가정 해 봅시다. nil
이 여전히 올바른 것입니다. 'Example.109'와 같은 파일이 있으면 어떻게됩니까? 나는 '109'를 잘못된 확장자로 사용합니다. 그래서 '.109'는 파일명 자체의 일부입니다. 이것을 검증하는 방법이 있습니까?파일 확장자가 유효한지 확인하십시오.
1
A
답변
3
유효한 파일 이름 확장자의 의미는 해당 확장명을 주장/주장하는 시스템에있는 응용 프로그램이있는 파일 이름 확장명입니다. 가능성이 콘솔에 다음과 같은 인쇄 것이다
NSString *pathExtension = [@"Example.109" pathExtension];
NSLog(@"pathExtension == %@", pathExtension);
CFStringRef utiType = UTTypeCreatePreferredIdentifierForTag(
kUTTagClassFilenameExtension, (__bridge CFStringRef)pathExtension, NULL);
NSLog(@"utiType == %@", utiType);
CFDictionaryRef declaration = UTTypeCopyDeclaration(utiType);
NSLog(@"declaration == %@", declaration); // will likely print (null)
CFStringRef jpgUTIType = UTTypeCreatePreferredIdentifierForTag(
kUTTagClassFilenameExtension, CFSTR("jpg"), NULL);
NSLog(@"jpg's UTI Type == %@", jpgUTIType);
CFDictionaryRef knownDeclaration = UTTypeCopyDeclaration(jpgUTIType);
NSLog(@"knownDeclaration == %@", knownDeclaration);
if (utiType) CFRelease(utiType);
if (knownFilenameExtensionsUTIType) CFRelease(knownFilenameExtensionsUTIType);
if (declaration) CFRelease(declaration);
if (knownDeclaration) CFRelease(knownDeclaration);
:
는은 쉽게 다음 코드를 사용하여 해당를 확인할 수 있습니다
pathExtension == 109
utiType == dyn.age8xcqb3
declaration == (null)
jpg's UTI Type == public.jpeg
knownDeclaration == {
UTTypeConformsTo = "public.image";
UTTypeDescription = "JPEG image";
UTTypeIdentifier = "public.jpeg";
UTTypeTagSpecification = {
"com.apple.ostype" = JPEG;
"public.filename-extension" = (
jpeg,
jpg,
jpe
);
"public.mime-type" = (
"image/jpeg",
"image/jpg"
);
};
}
당신은 인쇄 된 결과에서 호출을 볼 수 있듯이 .109
파일 이름 확장명과 연결된 UTI 형식의 UTTypeCopyDeclaration()
은 NULL
을 반환했습니다. 즉, 파일 이름 확장명을 선언하는 응용 프로그램이 없음을 의미합니다. .jpg
파일 이름 확장명과 연결된 UTI 유형을 사용하여 UTTypeCopyDeclaration()
호출에 대해 반환 된 결과와 비교하십시오. 거기에서 응용 프로그램 (또는 시스템 자체)이 파일 이름 확장자를 선언하기 때문에이 호출은 정보가 들어있는 유효한 사전을 반환합니다.
관련 문제
- 1. 파일 설명자가 유효한지 확인하십시오.
- 2. 파일 이름이 유효한지 확인하십시오.
- 3. 디렉토리가 파이썬에서 유효한지 확인하십시오
- 4. partiular 파일이 유효한지 확인하십시오 PHP 파일
- 5. 수학 함수가 유효한지 확인하십시오.
- 6. 개체가 유효한지 확인하십시오.
- 7. DirectoryEearry가 DirectorySearcher에서 유효한지 확인하십시오.
- 8. 경로가 유효한지 확인하십시오.
- 9. BitmapData가 유효한지 확인하십시오.
- 10. mysql 연결이 유효한지 확인하십시오.
- 11. php, 메일이 유효한지 확인하십시오.
- 12. 파일 확장자가
- 13. 제안 된 파일 확장자가 시스템의 유효한/등록 파일 확장자인지 확인하십시오.
- 14. 리디렉션 전에 ReturnUrl이 유효한지 확인하십시오.
- 15. 비트 코인 주소가 유효한지 확인하십시오.
- 16. 클래스 이름이 Java에서 유효한지 확인하십시오.
- 17. 사전에 저장된 인수가 유효한지 확인하십시오.
- 18. JSON과 XML이 유효한지 확인하십시오. C#
- 19. 반복자가 QT 컨테이너에 유효한지 확인하십시오.
- 20. Cakephp가 smtp 이메일이 유효한지 확인하십시오
- 21. 이미지가 유효한지 확인하십시오 (손상됨). javaCV
- 22. 양식 부모가 Symfony2에서 유효한지 확인하십시오.
- 23. 사용하기 전에 NSDate가 유효한지 확인하십시오.
- 24. 입력 한 암호가 유효한지 확인하십시오.
- 25. 여러 파일의 전체 경로가 유효한지 확인하십시오.
- 26. Node.js 비정품 확장자가 여러 파일이 있는지 확인하십시오.
- 27. 실제로 파일을 만들기 전에 파일 이름이 유효한지 확인하십시오.
- 28. VB.NET WebRequest를 사용하여 URI가 유효한지 확인하십시오.
- 29. 파일 확장자가 브라우저에서 중요합니까?
- 30. 윈도우에 파일 확장자가 적습니다.
글쎄 그것은 유효성에 따라 무엇을 의미합니까? 파일 이름 형식은 확장명에 의해 결정되지 않고 파일 자체의 형식에 따라 파일 형식에 대한 자세한 정보를 제공하면 파일 유효성 검사 방법을 알 수 있습니다. –
제 경우에는 파일은 전혀 중요하지 않습니다. 나는 단지 적절한 확장을하는 것에 관심이있다. 따라서 유효한 확장자는 문제의 경우처럼 잘못 파생되지 않은 것입니다. – Shwethascar
109 유효한 확장 프로그램이지만 유효하지 않습니다. 수동으로 유효성을 검사해야합니다. – Merlevede