J'ai écrit la routine suivante afin de copier tous les fichiers d'un répertoire dans un sous-répertoire puis de les supprimer, mais je reçois toujours un accès refusé sur le copy_fail semble me tromper. Les chemins sont corrigés, les fichiers existent et les autorisations ne sont pas en lecture seule dans le répertoire de destination que vous venez de créer.Boost: copy_file avec accès refusé mais il n'y a pas de problème d'autorisation
Une suggestion comment chasser la source du problème?
J'ai essayé de déboguer, mais je n'ai pas le code source boost :: filesystem.
Toute suggestion est appréciée.
void
moveConfigurationFileToSubDirectory()
{
// TODO: Catch errors.
boost::filesystem::path full_path(boost::filesystem::current_path());
// Create directory subdir if not exist
boost::filesystem::path subdirPath(kSubdirectory);
if (!boost::filesystem::exists(subdirPath))
{
PLog::DEV.Development(devVerbose, "%s: creating directory %s", __FUNCTION__, subdirPath.string());
boost::filesystem::create_directories(subdirPath);
} else
PLog::DEV.Development(devVerbose, "%s: directory %s exist", __FUNCTION__, subdirPath.string());
// Iterate through the configuration files defined in the static array
// copy all files with overwrite flag, if successfully delete file (looks like there is not remove)
for (int i = 0; i < kNumberOfConfigurationFiles; i++)
{
boost::filesystem::path currentConfigurationFile(kConfigurationFiles[i]);
try
{
boost::filesystem::copy_file(currentConfigurationFile, subdirPath, boost::filesystem::copy_option::overwrite_if_exists);
boost::filesystem::remove(currentConfigurationFile);
}
catch (exception& e)
{
PLog::DEV.Development(devError, "%s: exception - %s", __FUNCTION__, e.what());
}
}
}
Je suis sur windows. J'ai réécrit la même fonctionnalité en utilisant l'API Windows et cela fonctionne. L'argument de destination doit-il être un fichier ou un répertoire? Merci. – emitrax