Восстановление файлов после перемещения
Так... Я сделал "ой". Довольно большой. Я написал некоторый код для поиска по папкам и всем подкаталогам и извлечения любого найденного PDF-файла. Что я хотел сделать, так это скопировать PDF-файл в новое место, а вместо этого я просто переместил их. Код работал всю ночь, так как я знал, что буду иметь дело с 70k+ файлами, и не хотел замедлять свой компьютер, пытаясь делать другие вещи.
Что мне нужно сделать, так это вернуть их обратно. Проблема здесь в том, что каждый файл имеет уникальное имя и пришел из папки с очень похожим именем. Например: название файла ULT00004605_20161105.формат PDF происходил из подкаталоге с именем ULT00004605.
Кто-нибудь знает, как проиндексировать подкаталоги и вернуть их туда, откуда они пришли?
Код, который я использовал для их перемещения, находится в разделе "Что я пробовал?". Вы можете видеть, что я использовал MoveTo, когда должен был использовать CopyTo.
Что я уже пробовал:
String path = @"S:\QS Storage Server\DHR\ULT\"; String directoryName = @"G:\SHARED\MoveMe\SNHR_To_Upload\"; DirectoryInfo dirInfo = new DirectoryInfo(directoryName); if (dirInfo.Exists == false) { Directory.CreateDirectory(directoryName); } List<String> SNHRFiles = Directory.GetFiles(path, "*.pdf*", SearchOption.AllDirectories).ToList(); foreach (string file in SNHRFiles) { FileInfo mFile = new FileInfo(file); // to remove name collisions if (new FileInfo(dirInfo + "\\" + mFile.Name).Exists == false) { mFile.MoveTo(dirInfo + "\\" + mFile.Name); } }
j snooze
Если вы смогли выполнить поиск по всем папкам и подкаталогам, чтобы получить файлы, которые вы переместили, как вы не можете выполнить поиск по всем файлам и подкаталогам, в которые вы переместили файлы? Я ничего не понимаю.
AdvancedDNA
в основном потому, что имена файлов не совсем совпадают с именами папок и строкой.Contains не работает, и нет никакого "like"%, как есть в SQL. Папка, к которой принадлежал файл, может быть глубиной 5-7 папок, и у меня возникают трудности.