fileName: moved file operation global function to fileOperation

This commit is contained in:
Henry Weller
2018-05-30 12:48:48 +01:00
parent 2f32e8e5e3
commit d5903c3897
4 changed files with 50 additions and 51 deletions

View File

@ -1164,6 +1164,8 @@ Foam::label Foam::fileOperation::detectProcessorPath(const fileName& fName)
} }
// * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * //
const Foam::fileOperation& Foam::fileHandler() const Foam::fileOperation& Foam::fileHandler()
{ {
if (!fileOperation::fileHandlerPtr_.valid()) if (!fileOperation::fileHandlerPtr_.valid())
@ -1203,4 +1205,44 @@ void Foam::fileHandler(autoPtr<fileOperation>& newHandlerPtr)
} }
Foam::fileName Foam::search(const word& file, const fileName& directory)
{
// Search the current directory for the file
fileNameList files(fileHandler().readDir(directory));
forAll(files, i)
{
if (files[i] == file)
{
return directory/file;
}
}
// If not found search each of the sub-directories
fileNameList dirs(fileHandler().readDir(directory, fileName::DIRECTORY));
forAll(dirs, i)
{
fileName path = search(file, directory/dirs[i]);
if (path != fileName::null)
{
return path;
}
}
return fileName::null;
}
void Foam::cpFiles(const fileName& srcDir, const fileName& targetDir)
{
mkDir(targetDir);
const fileNameList srcFiles(readDir(srcDir, fileName::FILE, true));
forAll(srcFiles, filei)
{
cp(srcDir/srcFiles[filei], targetDir);
}
}
// ************************************************************************* // // ************************************************************************* //

View File

@ -536,6 +536,14 @@ const fileOperation& fileHandler();
//- Reset file handler //- Reset file handler
void fileHandler(autoPtr<fileOperation>&); void fileHandler(autoPtr<fileOperation>&);
//- Recursively search the given directory for the file
// returning the path relative to the directory or
// fileName::null if not found
fileName search(const word& file, const fileName& directory);
//- Copy all the files from the source to the target directory
void cpFiles(const fileName& srcDir, const fileName& targetDir);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -27,7 +27,6 @@ License
#include "wordList.H" #include "wordList.H"
#include "DynamicList.H" #include "DynamicList.H"
#include "OSspecific.H" #include "OSspecific.H"
#include "fileOperation.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -397,46 +396,4 @@ Foam::fileName Foam::operator/(const string& a, const string& b)
} }
// * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * //
Foam::fileName Foam::search(const word& file, const fileName& directory)
{
// Search the current directory for the file
fileNameList files(fileHandler().readDir(directory));
forAll(files, i)
{
if (files[i] == file)
{
return directory/file;
}
}
// If not found search each of the sub-directories
fileNameList dirs(fileHandler().readDir(directory, fileName::DIRECTORY));
forAll(dirs, i)
{
fileName path = search(file, directory/dirs[i]);
if (path != fileName::null)
{
return path;
}
}
return fileName::null;
}
void Foam::cpFiles(const fileName& srcDir, const fileName& targetDir)
{
mkDir(targetDir);
const fileNameList srcFiles(readDir(srcDir, fileName::FILE, true));
forAll(srcFiles, filei)
{
cp(srcDir/srcFiles[filei], targetDir);
}
}
// ************************************************************************* // // ************************************************************************* //

View File

@ -242,14 +242,6 @@ public:
//- Assemble words and fileNames as pathnames by adding a '/' separator //- Assemble words and fileNames as pathnames by adding a '/' separator
fileName operator/(const string&, const string&); fileName operator/(const string&, const string&);
//- Recursively search the given directory for the file
// returning the path relative to the directory or
// fileName::null if not found
fileName search(const word& file, const fileName& directory);
//- Copy all the files from the source to the target directory
void cpFiles(const fileName& srcDir, const fileName& targetDir);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //