我在本地和挂载的文件系统之间复制文件,挂载的系统可以是 USB、FireWire、AFP 或远程服务器。我需要确定安装的卷正在使用哪种类型的计算机连接。我可以使用statfs系统调用来识别挂载的文件系统类型,但我无法弄清楚如何识别连接类型(FireWire、Wifi、eth、USB ...)。我识别文件系统的代码是:
-(void) getVolumeInfo:(NSURL *) myurl
{
struct statfs buf;
statfs([myurl.path UTF8String], &buf);
NSLog(@"Filesystem type: %s mounted filesystem: %s mounted as: %s",buf.f_fstypename,buf.f_mntfromname,buf.f_mntonname);
}
这为我的笔记本电脑硬盘和我的 NAS 服务器提供了以下输出。
Filesystem type: hfs mounted filesystem: /dev/disk0s2 mounted as: /
Filesystem type: afpfs mounted filesystem: //Trond%20Kristiansen@HerlighetNASserver._afpovertcp._tcp.local/home mounted as: /Volumes/home
我的问题是:1)有谁知道我如何通过代码识别例如 NAS 服务器是如何连接的(wifi 或网络电缆)2)无论如何我可以检测连接速度吗?
谢谢!