Its also broken if the link points to a UNC path.

Scott

-----Original Message-----
From: interest-bounces+scott.bloom=onshorecs....@qt-project.org 
[mailto:interest-bounces+scott.bloom=onshorecs....@qt-project.org] On Behalf Of 
Scott Aron Bloom
Sent: Wednesday, August 28, 2013 6:42 PM
To: qt-interest (interest@qt-project.org)
Subject: [Interest] Issue on windows with canonicalFilePath

On the Windows system there was a directory created using mklink (microsofts 
version of ln), I have found I a bug in QFileInfo::canonicalFilePath;

Here is the code
#include <QApplication>
#include <QFileInfo>
#include <QDir>
#include <QDebug>
using namespace std;
 
int main( int argc, char ** argv )
{
    QApplication appl( argc, argv );

    QString linkDir = argv[ 1 ];

    QString absFilePath = QFileInfo( relToDir ).canonicalFilePath();

   qDebug() << absFilePath;
 
    return 0;
}

Here is the problem if argv[ 1 ] is a directory with a soft link in the path 
structure, I expected the results to remove the link and put in the actual 
path.. However its DROPPING the drive name from the return value (tested on 
win7 and win8)

It works fine on linux.

What apparently is going on, in the core for qfsfileengine_win.cpp, in the 
analysis of the symbolic link, MS does not return the drive ( in the return 
value to DeviceIoControl).. and it has to be put back on.

Has this been fixed in Qt 5?  

If not Ill file a bug... 
Scott


_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to