我在Mac中使用wxWidgets(显然)和Xcode。
当该行应该为真时,该行返回false。
` if(!wxFileExists(filePicker->GetPath())
{
wxMessageDialog(this, "error").ShowModal();
return;
} `
其中filePicker是wxFilePickerCtrl
。它的价值在于:
filepath std::__1::string "/Users/swtsvn/Main/Proj1/Mac/binaries/osx/Debug/wxSampleApp.app"
路径大写,没有空格。文件位于该路径中,因为我使用文件选择器wxWidget工具选择了该文件路径。
我搜索了一个原因wxFileExists可能在Mac上返回false但在Windows上没有,但在Google中找不到。
如果有人知道答案,请告诉我。
答案 0 :(得分:1)
根据docs,wxFileExists()
:
如果文件存在且是普通文件,则返回
true
。
因此,它为目录返回false。 Mac应用程序包(例如wxSampleApp.app)是目录。在这种情况下,函数的故意行为是返回false。
你可能会使用wxFileExists(path) || wxDirExists(path)
代替,虽然这样效率会有些低效。