QFile :: resize在Windows和Ubuntu中的行为不同

时间:2019-07-01 09:33:50

标签: c++ qt

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

0 个答案:

没有答案