void printCleaning(fileName& pathName) { Info<< "fileName = " << pathName << nl << " path() = " << pathName.path() << nl << " name() = " << pathName.name() << nl << " joined = " << pathName.path()/pathName.name() << nl << nl; pathName.clean(); Info<< "cleaned = " << pathName << nl << " path() = " << pathName.path() << nl << " name() = " << pathName.name() << nl << " joined = " << pathName.path()/pathName.name() << nl << nl; IOobject::writeDivider(Info); }
void Foam::ensightSetWriter<Type>::write ( const coordSet& points, const wordList& valueSetNames, const List<const Field<Type>*>& valueSets, Ostream& os ) const { const fileName base(os.name().lessExt()); const fileName meshFile(base + ".mesh"); // Write .case file os << "FORMAT" << nl << "type: ensight gold" << nl << nl << "GEOMETRY" << nl << "model: 1 " << meshFile.name().c_str() << nl << nl << "VARIABLE" << nl; forAll(valueSetNames, setI) { fileName dataFile(base + ".***." + valueSetNames[setI]); os.setf(ios_base::left); os << pTraits<Type>::typeName << " per node: 1 " << setw(15) << valueSetNames[setI] << " " << dataFile.name().c_str() << nl; }
void getRootCase(fileName& casePath) { casePath.clean(); if (casePath.empty() || casePath == ".") { // handle degenerate form and '.' casePath = cwd(); } else if (casePath[0] != '/' && casePath.name() == "..") { // avoid relative cases ending in '..' - makes for very ugly names casePath = cwd()/casePath; casePath.clean(); } }
// Rename srcFile destFile bool mv(const fileName& srcFile, const fileName& destFile) { if (MSwindows::debug) { Info<< "Move : " << srcFile << " to " << destFile << endl; } const fileName destName = ((destFile.type() == fileName::DIRECTORY) && (srcFile.type() != fileName::DIRECTORY)) ? destFile/srcFile.name() : destFile; const bool success = (0 == std::rename(srcFile.c_str(), destName.c_str())); return success; }
// Rename srcFile dstFile bool Foam::mv(const fileName& src, const fileName& dst) { if (POSIX::debug) { Info<< "Move : " << src << " to " << dst << endl; } if ( dst.type() == fileName::DIRECTORY && src.type() != fileName::DIRECTORY ) { const fileName dstName(dst/src.name()); return rename(src.c_str(), dstName.c_str()) == 0; } else { return rename(src.c_str(), dst.c_str()) == 0; } }
// Copy, recursively if necessary, the source to the destination bool Foam::cp(const fileName& src, const fileName& dest) { // Make sure source exists. if (!exists(src)) { return false; } fileName destFile(dest); // Check type of source file. if (src.type() == fileName::FILE) { // If dest is a directory, create the destination file name. if (destFile.type() == fileName::DIRECTORY) { destFile = destFile/src.name(); } // Make sure the destination directory exists. if (!isDir(destFile.path()) && !mkDir(destFile.path())) { return false; } // Open and check streams. std::ifstream srcStream(src.c_str()); if (!srcStream) { return false; } std::ofstream destStream(destFile.c_str()); if (!destStream) { return false; } // Copy character data. char ch; while (srcStream.get(ch)) { destStream.put(ch); } // Final check. if (!srcStream.eof() || !destStream) { return false; } } else if (src.type() == fileName::DIRECTORY) { // If dest is a directory, create the destination file name. if (destFile.type() == fileName::DIRECTORY) { destFile = destFile/src.component(src.components().size() -1); } // Make sure the destination directory exists. if (!isDir(destFile) && !mkDir(destFile)) { return false; } // Copy files fileNameList contents = readDir(src, fileName::FILE, false); forAll(contents, i) { if (POSIX::debug) { Info<< "Copying : " << src/contents[i] << " to " << destFile/contents[i] << endl; } // File to file. cp(src/contents[i], destFile/contents[i]); } // Copy sub directories. fileNameList subdirs = readDir(src, fileName::DIRECTORY); forAll(subdirs, i) { if (POSIX::debug) { Info<< "Copying : " << src/subdirs[i] << " to " << destFile << endl; } // Dir to Dir. cp(src/subdirs[i], destFile); } } return true; }
Foam::word Foam::dynamicCode::libraryBaseName(const fileName& libPath) { word libName(libPath.name(true)); libName.erase(0, 3); // Remove leading 'lib' from name return libName; }