苹果公司现在要求所有未来的应用程序进行沙箱,所以我跟着指示沙箱的应用程序。 构建成功,但随后我的system(rm -rf ~/.Trash/*)
命令停止工作。 没啥事儿。 我感到困惑这是为什么这个系统命令不能与App沙箱/应享权利的工作。 这里是我的权利的设置:
待遇:选中
应用程序沙箱:经过
这里是我当前的代码:
- (void)viewDidLoad {
[self emptyTrash];
}
- (void)emptyTrash {
system(rm -rf ~/.Trash/*);
}
谢谢你的帮助!
看看文档 。
Mac OS X的寻路的API,POSIX的层之上,返回相对容器,而不是相对于用户的主目录的路径。 如果您的应用程序,你沙盘前,访问用户的实际home目录位置(〜),并且使用的是可可或核心基础的API,那么,您启用沙箱后,你的路径查找代码会自动使用你的应用程序的容器代替。
您可以使用
struct passwd *getpwuid(uid_t uid);
struct passwd {
char *pw_name; /* user name */
char *pw_passwd; /* encrypted password */
uid_t pw_uid; /* user uid */
gid_t pw_gid; /* user gid */
__darwin_time_t pw_change; /* password change time */
char *pw_class; /* user access class */
char *pw_gecos; /* Honeywell login info */
char *pw_dir; /* home directory */
char *pw_shell; /* default shell */
__darwin_time_t pw_expire; /* account expiration */
}
#include <pwd.h>
#include <sys/types.h>
char *HomeDirectory = getpwuid(getuid())->pw_dir;
NSLog(@"%s", HomeDirectory);
system([[NSString stringWithFormat:@"rm -rf %s/.Trash/",HomeDirectory] UTF8String]);