return result;
public String open () {	int dialog= 0;	String result= null;		int titleHandle= 0;	int messageHandle= 0;	try {		int[] dialogHandle= new int[1];				int parentWindowHandle= 0;		if (parent != null)			parentWindowHandle= parent.shellHandle;					titleHandle= OS.CFStringCreateWithCharacters(title);		messageHandle= OS.CFStringCreateWithCharacters(message);				int flags= 0;		OS.NavCreateChooseFolderDialog(flags, titleHandle, messageHandle, parentWindowHandle, dialogHandle);		dialog= dialogHandle[0];				if (dialog != 0) {								OS.NavDialogRun(dialog);					switch (OS.NavDialogGetUserAction(dialog)) {			case OS.kNavUserActionCancel:				break;							case OS.kNavUserActionOpen:			case OS.kNavUserActionChoose:							String[] directories= FileDialog.getPaths(dialog);				if (directories.length > 0)					result= directories[0];				break;			}		}	} finally {		if (titleHandle != 0)			OS.CFRelease(titleHandle);		if (messageHandle != 0)			OS.CFRelease(messageHandle);		if (dialog != 0)			OS.NavDialogDispose(dialog);	}	return result;}