Je suis en train de copier un fichier d'un endroit à un autre en utilisant SHFileOperation:SHFileOperation crée le répertoire vide au lieu du fichier
SHFILEOPSTRUCT fileop;
fileop.hwnd = 0;
fileop.wFunc = FO_COPY;
fileop.pFrom = L"C:\\SomeDirectory\\SomeName.jpg\0";
fileop.pTo = L"C:\\SomeOtherDirectory\\SomeName.jpg\0";
fileop.fFlags = FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_SILENT;
fileop.fAnyOperationsAborted = FALSE;
fileop.hNameMappings = 0;
fileop.lpszProgressTitle = 0;
SHFileOperation(&fileop);
Le problème est que, au lieu d'obtenir une copie de SomeName.jpg dans SomeOtherDirectory un vide répertoire avec le nom SomeOtherDirectory \ SomeName.jpg est créé, des indices?
Mais MSDN (http://msdn.microsoft.com/en-us/library/bb759795%28VS.85%29.aspx) indique que «pTo» est * Un pointeur vers le nom du fichier de destination ou du répertoire *. – Naveen
@Naveen: vous devez également lire la documentation de 'wFunc' pour voir comment elle est utilisée. –
Non, cela ne fonctionne pas non plus. Si un dossier est spécifié comme destination, rien ne se passe pour ces fichiers, ils sont soit transformés en dossiers ou ignorés par SHFileOperation. Le bug ne se produit que pour certains fichiers. Je le contourne comme ceci: 'if (! CopyFile (...)) SHFileOperation (...);' – GrayFace