PDA

Voir la version complète : probleme de deplacement de repertoire


zaki
17/07/2008, 00h53
bonjour les amis
svp comment faire deplacer un repertoire entre 2 volumes différentes (du D: vers C:)

j'ai essayé de la faire avec directory.move mais j'ai eu une exeption << Le chemin d'accès source et celui de destination doivent avoir des racines identiques. Le déplacement n'est pas possible entre ces volumes. >>

est ce qu'il y a une autre méthode ?

merci

venom1000
17/07/2008, 12h38
essaye de le faire avec UNLOCKER (http://ccollomb.free.fr/unlocker/)
je t donné le lien pour voir comment faire et le telecharger en meme temps.

mouradski_21
17/07/2008, 14h28
Waw, c'est vague ton truc ?

C'est en développant ? quel langage ? ou bien j'ai raté un truc que venom1000 a remarqué ? :D

zaki
17/07/2008, 14h28
merci por le lien
mais je cherche le code en c# (car j'ai oublier d'indiquer ça dans le message précédant :eek:)

merci encore

zaki
17/07/2008, 14h29
Waw, c'est vague ton truc ?

C'est en développant ? quel langage ? ou bien j'ai raté un truc que venom1000 a remarqué ? :D

désolé une autre fois !!:D

mouradski_21
17/07/2008, 16h30
Salem,

J'ai pas VS à disposition là mais j'ai fait un peu de recherche et apparemment il faut croire le message :) ie : ce n'est pas possible d'après le message d'utiliser la méthode move entre les volumes.

Darkvader
17/07/2008, 20h41
The exception is clear you cannot move Directories across volumes.
Try this solution:

public void MoveDirectory(string sourceDir, string distDir, bool delSource)
{
if(Directory.Exists(sourceDir)
{
if(Directory.GetDirectoryRoot(sourceDir) == Directory.GetDirectoryRoot(destDir)
{
Directory.Move(sourceDir, destDir);
}
else
{
CopyDirectory(new DirectoryInfo(sourceDir), new DirectoryInfo(destDir));
if(delSource)
{
Directory.Delete(sourceDir, true);
}
}
}
}

private void CopyDirectory(DirectoryInfo sourceDir, DirectoryInfo destDir)
{
if(!destDir.Exists)
{
destDir.Create();
}
FileInfo[] srcFiles = sourceDir.GetFiles();
foreach(FileInfo srcFile in srcFiles)
{
srcFile.CopyTo(Path.Combine(destDir.FullName, srcFile.Name));
}
DirectoryInfo[] scrDirectories = sourceDir.GetDirectories();
foreach(DirectoryInfo scrDirectory in srcDirectories)
{
CopyDirectory(srcDirectory, new DirectoryInfo(Path.Combine(destDir.FulleName,
srcDirectory.Name)));
}
}

zaki
17/07/2008, 21h11
merci je vais essayer :)