指定fllename而无需用户交互?

时间:2012-02-15 21:19:54

标签: objective-c macos cocoa macos-carbon

我有一段可怕的代码,我只想自己指定输入文件,而不是向用户弹出任何类型的对话框。我知道这段代码很古老,但希望有些聪明人可以快速回答这个问题很简单,我确定,但我不是程序员。

BOOL Geeeez()
{
    BOOL ret=FALSE;
    NavDialogRef fileDialog;
    NavDialogCreationOptions fo;
    NavGetDefaultDialogCreationOptions(&fo);
    fo.optionFlags=0;
    fo.parentWindow=win;
    NavCreateChooseFileDialog(&fo,NULL,NULL,NULL,NULL,NULL,&fileDialog);
    if (!NavDialogRun(fileDialog)) {
        NavReplyRecord r;
        if (!NavDialogGetReply(fileDialog,&r)) {
            AEKeyword k;
            FSRef fr;
            if (!AEGetNthPtr(&r.selection,1,typeFSRef,&k,NULL,&fr,sizeof(fr),NULL)) {
                char file[256];
                FSRefMakePath(&fr,(BYTE*)file,sizeof(file));
                if (!(data=THIS_CodeReallySucks(FALSE,file,0,0,NULL))
                ......

1 个答案:

答案 0 :(得分:1)

所有代码正在做的是要求用户选择一个文件,然后最终将文件系统参考转换为包含该路径的C字符串。如果你知道路径,上面的代码可以简化为:

BOOL Geeeez()
{
    if (!(data = THIS_CodeReallySucks(FALSE, "path to file goes here", 0, 0, NULL))
    ...