[Interest] QLockFile

André Somers andre at familiesomers.nl
Mon Feb 23 10:52:17 CET 2015


Graham Labdon schreef op 23-2-2015 om 10:48:
> Hi
>
> I am trying to use QLockFile in a function that receives a file path as a QString.
>
> When I pass the string directly to the constructor of QLockFile and the call tryLock it always fails.
>
> However, if I hard code the string the lock succeeds (although I get compiler warnings about unknown escape sequences)
>
> If I user the toNativeSeparators method of QDir on my file path the call to tryLock fails although in the debugger the value of the converted string appears to the same as the hard coded value.
>
> I would be grateful if someone could explain this behaviour
>
> FileDestination::FileDestination(const QString& filePath)
> {
>      QLockFile lockFile(filePath); // tryLock fails
>
>      QString s = QDir::toNativeSeparators(filePath)
>      QLockFile lockFile2(s); // tryLock fails
>
>      QLockFile lockFile3("C:\jobs\Myjob.txt"); // tryLock succeeds bu get compiler warnings for unknown escape sequences
> }

The last one is not valid. A \ in a C/C++ string is an escape character. 
If you want a literal \ in your string, you need to double them. Or, in 
Qt, you just use forward slashes (/) on all platforms.

So, are you sure your filePath itself is valid?

André




More information about the Interest mailing list