相关文章推荐

macOS 开发 — 读取文件/视频 信息

在开发过程中我们或许需要,在文件未打开的情况下读取文件信息。或者在视频加载前读取视频编码格式,以及视频的尺寸等等。以下提供三种Object-c macOS下的实现方法:

NSFileManager 读取文件信息
-(void)getFileInfo:(NSString *)path{
    NSFileManager *manger = [NSFileManager defaultManager];
    NSDictionary *dic= [manger attributesOfItemAtPath:path error:nil];
    NSLog(@"%s: \n %@",__func__,dic);
AVURLAsset 读取文件信息
-(void)getVideoWithAsset:(NSString *)path
    NSLog(@"%s",__func__);
    AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:[NSURL fileURLWithPath:path] options:nil];
    NSArray *metaArray = [asset commonMetadata];
    NSArray *assetTrack = [asset tracks];
    for ( AVMetadataItem *item in metaArray)
        NSLog(@"\n %@",item);
    for (AVAssetTrack *track in assetTrack) {
        NSLog(@" %f,%f",track.naturalSize.height,track.naturalSize.width);
系统自带的 mdls 脚本 读取文件信息
-(void)getVideoInfoWithShell:(NSString *)path{
    NSTask *task;
    task = [[NSTask alloc] init];
    [task setLaunchPath: @"/usr/bin/mdls"];
    NSArray *arguments;
    arguments = [NSArray arrayWithObjects:path, nil];
    [task setArguments: arguments];
    NSPipe *pipe;
    pipe = [NSPipe pipe];
    [task setStandardOutput: pipe];
    NSFileHandle *file;
    file = [pipe fileHandleForReading];
    [task launch];
    NSData *data;
    data = [file readDataToEndOfFile];
    NSString *string;
    string = [[NSString alloc] initWithData: data
                                   encoding: NSUTF8StringEncoding];
    NSLog (@"%s: \n%@",__func__, string);
    NSString *homePath =NSHomeDirectory();//系统函数
    NSLog(@"homePath = %@",homePath);
    return homePath;
2.获取doc...
    [openPanel setPrompt: @"打开"];
    openPanel.allowedFileTypes = [NSArray arrayWithObjects: @"txt", @"doc", nil];
    openPanel...
				
macOS如何读取移动储存设备中的文件概述方法 在Mac中,所有应用都是跑在沙盒中,如果想访问沙盒以外的文件,则需要用户授权,授权方式则是需要用户选择对应的存储路径,确认后方可访问对应的文件目录。 首先需要在沙盒选项中添加用户选择文件的读写权限: 然后需要用到NSOpenPanel去打开路径选择的界面。 let open = NSOpenPanel() open.prompt = "描述" open.title = "选择路径"
文章目录一、权限说明二、`文件文件夹` 权限管理的目录三、完全磁盘访问权限1、手动增删2、和 文件文件夹 权限相关3、SIP 下 无法用命令 完全磁盘访问 权限4、完全磁盘访问权限 的授权判断 一、权限说明 关于这两个权限,没有看到 Apple 给开发者的具体建议。 根据:https://support.apple.com/zh-cn/guide/mac-help/mh32356/mac,...
最近在做的东西有下载zip,只是服务器发送过来的是二进制,需要根据二进制来判断是什么类型的文件,从而进行保存操作。起初很不理解,到后来发现可以通过二进制的前2位的ascii码来进行判断。如下:      // 255216 jpg;         // 7173 gif;         // 6677 bmp,         // 13780 png;         // 678
开机服务(测试中) /sbin/launchd的PID是1,其相当于linux中的init,我们可以在恢复模式替换/sbin/launchd,也许可以搞定(Shell脚本肯定不行)。
1 、获取网络链接的视频大小和时长 AVURLAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil];// url:网络视频的连接 NSArray *arr = [asset tracksWithMediaType:AVMediaTypeVideo];// 项目中是明确媒体类型为视频,其他没试过 CGSize vide...
 
推荐文章