I can do this so simply with files, like so:
public static void MoveAllFilesFromDesktopToJDrive()
{
DirectoryInfo di = new DirectoryInfo(@"C:\Users\Tafe\Desktop\");
DirectoryInfo Jdrive = new DirectoryInfo(@"J:\");
foreach (FileInfo fi in di.GetFiles())
{
if (Path.GetFileName(fi.FullName) != "desktop.ini")
{
fi.MoveTo(Jdrive.FullName + Path.GetFileName(fi.FullName));
}
}
}
But trying the same operation on directories tells me I can’t move directories accross volumes. OK then, so this is what I’ve tried:
public static void MoveAllDirsFromDeskTopToJDrive()
{
DirectoryInfo di = new DirectoryInfo(@"C:\Users\Tafe\Desktop\");
DirectoryInfo Jdrive = new DirectoryInfo(@"J:\");
foreach (DirectoryInfo dirs in di.GetDirectories())
{
Directory.CreateDirectory(Jdrive + Path.GetFileName(dirs.FullName));
}
}
This copies the names of the files, but not the contents, I would just move the contents like I did with my MoveAllFilesFromDesktopToJDrive() method, but the directories contain subdirectories and subdirectories and such, so I can’t figure it out. I know a TINY bit about recursion, but not enough to even attempt this. Also, It can’t be that hard can it? There has to be something better in the API to facilitate this? If not, any help to complete this method MoveAllFilesFromDesktopToJDrive() would be a lifesaver!
Try looping this somewhere within your code:
For more details visit this link : http://msdn.microsoft.com/en-us/library/cc148994.aspx