我有一段可怕的代码,我只想自己指定输入文件,而不是向用户弹出任何类型的对话框。我知道这段代码很古老,但希望有些聪明人可以快速回答这个问题很简单,我确定,但我不是程序员。
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))
......
答案 0 :(得分:1)
所有代码正在做的是要求用户选择一个文件,然后最终将文件系统参考转换为包含该路径的C字符串。如果你知道路径,上面的代码可以简化为:
BOOL Geeeez()
{
if (!(data = THIS_CodeReallySucks(FALSE, "path to file goes here", 0, 0, NULL))
...