是否有可能在不知道确切位置的情况下在Mac上找到文件?

时间:2011-09-03 00:58:46

标签: objective-c macos file-io itunes

我试图在Machintosh上找到一个文件而不知道确切的文件位置。我正在开发一个应用程序,它需要找到iTunes库XML文件并解析它的数据。但是,XML驻留在

/Users/**Current logged in username**/Music/iTunes 

现在用户名可能会改变,那么如何设置路径让我的代码以编程方式在命名文件下面找到。使用的语言是Objective - C.

File name : iTunes Music Library.xml
  

我认为可能的解决方案是按代码获取用户名。有没有任何方法可以返回当前登录用户的“用户名”字符串。

由于

3 个答案:

答案 0 :(得分:2)

您应该可以使用~/Music/iTunes~表示当前用户的主目录。

或者你可以看到这个问题:Mac OS X: Get current username and home directory for current user from Directory Services

答案 1 :(得分:2)

不要这样做!用户的iTunes资料库不必位于默认位置。

而是从com.apple.iapps中读取iTunesRecentDatabasePaths键。它会给你一个代表最近使用的iTunes库的数组。

$ defaults read com.apple.iapps iTunesRecentDatabasePaths
(
    "/Volumes/Media/iTunes/iTunes Library.xml"
)

答案 2 :(得分:0)

NSHomeDirectory()是一个Foundation函数,它返回当前用户主目录路径的NSString。

Apple Developer Library - NSHomeDirectory