Получение информации о файлах
Этот документ объясняет, как использовать NSWorkspace для получения информации о файлах.
Нахождение типов файлов и приложений
Для получения типа файла и какое приложение открывает файл используйте NSWorkspace’s getInfoForFile:application:type:
метод. Строка, переданная методу, должна быть полным путем желаемого файла. Этот фрагмент кода получает приложение и тип для файла в fullPath
:
NSString *fullPath; // Assume this exists. |
NSString *theApplication; |
NSString *theType; |
[[NSWorkspace sharedWorkspace] getInfoForFile:fullPath |
application:&theApplication |
type:&theType]; |
[theApplication retain]; |
[theType retain]; |
Для получения другой информации о файле используйте NSFileManager
методы displayNameAtPath:
, fileExtensionHidden
, fileHFSCreatorCode
, fileHFSTypeCode
, и fileAttributesAtPath:traverseLink:
.
Для получения полного пути для приложения используйте fullPathForApplication:
метод. Предоставленное имя приложения может или включать или опустить .app
расширение.
Чтобы узнать, указывает ли путь на пакет файла, используйте isFilePackageAtPath:
метод.
Получение значков
Методы iconForFile:
и iconForFiles:
получите значок для файла или значки для массива файлов. Файлы должны быть указаны с полными путями. iconForFileType:
метод обеспечивает значок для данного расширения файла или закодированного типа файла HFS. Этот фрагмент кода получает значок для файла в fullPath
, и изменяет размеры его к полным 128 пикселям разрешением на 128 пикселей:
NSString *fullPath; // Assume this exists. |
NSImage *theIcon; |
theIcon = [[[NSWorkspace sharedWorkspace] iconForFile:fullPath] retain]; |
[theIcon setSize:NSMakeSize(128.0,128.0)]; |
Для получения универсального значка вызовите NSFileTypeForHFSTypeCode
функция с одной из констант значка, определенных Icon Services в платформе Углерода (см. Standard Finder Icon Constants
в Icon Services и Ссылке Утилит), затем используйте iconForFileType:
метод с результатом. Этот фрагмент кода получает значок универсального приложения в полном размере:
#import <Carbon/Carbon.h> |
// ... |
NSImage *theIcon; |
theIcon = [[[NSWorkspace sharedWorkspace] |
iconForFileType: |
NSFileTypeForHFSTypeCode(kGenericApplicationIcon)] retain]; |
[theIcon setSize:NSMakeSize(128.0,128.0)]; |