2014-03-13 98 views
0

我想执行一个shell命令(我想touch文件)。我使用system("shell command")来执行该命令。

Objective-C - 如何将文件路径转换为shell符合文件路径

例如,我想在路径/Users/username/New Folder/处触摸该文件。现在我需要将NSString转换为符合shell命令的格式,如/Users/username/New\ Folder

是否有任何方法可以执行此类转换?

注意:它不只是用\来代替空格。如果路径中有特殊字符,例如/Users/username/Folder(foo)/,“shell路径”看起来像这样/Users/username/Folder\(foo\)/

回答

1

没有必要转换路径,可以用单引号括起来。只需使用:

touch 'path' 
+0

谢谢;)那么容易... –

1

您可以使用带有“”标记的参数包含空格。

touch "/Users/username/New Folder/" 

至少这个工程在shell提示符下

+0

单引号更好,双引号不会阻止shell扩展。 – CRD

0

不要使用system。这是不安全和不可预测的。用引号括住字符串是不够的。使用execve style functions代替。他们简单而安全。