Implement instance creation.
This commit is contained in:
@ -25,4 +25,8 @@ LIBUTIL_EXPORT QString PathCombine(QString path1, QString path2, QString path3);
|
||||
|
||||
LIBUTIL_EXPORT QString AbsolutePath(QString path);
|
||||
|
||||
LIBUTIL_EXPORT QString RemoveInvalidFilenameChars(QString string, QChar replaceWith = '-');
|
||||
|
||||
LIBUTIL_EXPORT QString DirNameFromString(QString string, QString inDir = ".");
|
||||
|
||||
#endif // PATHUTILS_H
|
||||
|
@ -35,3 +35,33 @@ QString AbsolutePath(QString path)
|
||||
{
|
||||
return QFileInfo(path).absolutePath();
|
||||
}
|
||||
|
||||
QString badFilenameChars = "\"\\/?<>:*|!";
|
||||
|
||||
QString RemoveInvalidFilenameChars(QString string, QChar replaceWith)
|
||||
{
|
||||
for (int i = 0; i < string.length(); i++)
|
||||
{
|
||||
if (badFilenameChars.contains(string[i]))
|
||||
{
|
||||
string[i] = replaceWith;
|
||||
}
|
||||
}
|
||||
return string;
|
||||
}
|
||||
|
||||
QString DirNameFromString(QString string, QString inDir)
|
||||
{
|
||||
int num = 0;
|
||||
QString dirName = RemoveInvalidFilenameChars(string, '-');
|
||||
while (QFileInfo(PathCombine(inDir, dirName)).exists())
|
||||
{
|
||||
num++;
|
||||
dirName = RemoveInvalidFilenameChars(dirName, '-') + QString::number(num);
|
||||
|
||||
// If it's over 9000
|
||||
if (num > 9000)
|
||||
return "";
|
||||
}
|
||||
return dirName;
|
||||
}
|
||||
|
Reference in New Issue
Block a user