Implement instance creation.

This commit is contained in:
Andrew
2013-04-22 17:15:18 -05:00
parent ff3078b3a6
commit 1626fa013c
6 changed files with 109 additions and 5 deletions

View File

@ -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

View File

@ -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;
}