final Uri selectedImage = data.getData();
final String[] filePathColumn = {MediaStore.Images.Media.DATA};
final Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
//This is your file path
final String imgDecodableString = cursor.getString(columnIndex);
cursor.close();
}
请注意,我指定的目录已经存在,并且该文件不存在。在Windows中,调用 int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
#ifdef _WIN32
QString fileName("G:\\sampledir\\file1.txt");
#elif __linux__
QString fileName("/home/dheeraj/sampledir/file1.txt");
#endif
QFile *file = new QFile(fileName);
if(!file->resize(32))
{
cout<<"ERROR in resize"<<endl;
}
return 0;
}
在磁盘中创建文件并返回true。但是在ubuntu中,调用"file->resize(32)"
返回false。
可能是什么原因?实际的预期行为是什么?
"file->resize(32)"
的文档也不是很明确。它说如果文件不存在,此功能“可能”失败。
我正在Windows 10和Ubuntu 14.04中使用Qt 5.9.2