我的应用程序中有一个声音文件,但 iPhone 无法播放。检查完其他问题后,我在终端中检查了文件权限。
我可以看到,该文件的文件权限末尾有一个-@。我不知道这是否是问题所在,但这是与其他可以正常播放的声音文件的唯一区别。
- 这是什么标志?
- 这会造成问题吗?
编辑
谢谢
这是我得到的:
com.apple.FinderInfo:
00000000 4D 34 41 20 68 6F 6F 6B 00 00 00 00 00 00 00 00 |M4A hook........|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000020
谢谢 Shani
答案1
“@”符号(ls 手册页中没有记录)表示该文件具有扩展属性。您可以使用该命令xattr -l <filename>
显示它们。
至于如何读取它,这是十六进制数据的结构表示:
struct finder_info {
char[4] filetype; // x,y coords of top left corner for directories
char[4] creator; // x,y coords for bottom right corner for directories
char[2] finder_flags;
char[2] finder_loc_v;
char[2] finder_loc_h;
char[2] opaque1; // Icon ID?
char[2] scroll_position_v;
char[2] scroll_position_h;
char[2] reserved1;
char[6] opaque_finder_flags
char[2] reserved2;
char[2] putAwayFolderID;
};
为了解决您的问题,我找到了这解决方法:
在桌面上,使用 Finder 创建一个空的新文件夹,并将其命名为 Foo。
按住 Option 键,将视频文件拖到 Foo 文件夹中。这会复制文件,而不仅仅是移动文件。
然后,在终端中逐行输入以下行:
cd ~/Desktop cp -XR Foo NewFoo cd NewFoo ls -@l
@ 符号消失了吗?现在您可以打开文件了吗?