-
Bug
-
Resolution: Cannot Reproduce
-
P2: Important
-
None
-
4.6.1
-
None
-
Windows
If you setFileName() to a new file, prior error code is retained, which can cause operations on the new file name to fail when they should not.
{ // Create and close "foo" QFile file1("foo"); file1.open(QIODevice::WriteOnly); file1.close(); // Open "bar" file1.setFileName("bar"); file1.open(QIODevice::WriteOnly); // Try to remove "bar", fails (as it should, because file1 has it open) QFile file2("bar"); assert(!file2.remove()); // Causes error code to be set within file2 // Try to remove "foo" (should succeed, because nobody has it open) file2.setFileName("foo"); assert(file2.remove()); // Fails!!! }