Проблема: Я не могу удалить папку (включая содержимое) в папке рабочего стола программно с помощью C#. Если я копирую значение desktopDestinationPath и вставляю его в Проводник Windows, я могу открыть этой папке (вывод, путь действителен). Тест - Directory.Exists (desktopDestinationPath) - возвращает как истинный, и я отбрасываю в код block (вывод, путь действителен) Directory.Delete (desktopDestinationPath, true) - исключение исключений (вывод, путь больше не действителен) Если я копирую значение пути из исключения и вставляю его в проводник Windows, я могу открыть эта папка (вывод, путь действителен)Не удается удалить папку рабочего стола
Что я пробовал: Построить, перестроить, очистить Решение, перезапустить визуальный студия. Кроме того, если я удалю папку вручную и запустил код, папка будет успешно построена. Однако, когда я запускаю второй раз, я получаю исключение . Результат: озадаченный взгляд и этот пост. Извините, если я поставил слишком много деталей. Я открыт, чтобы помочь с решением и критикой на , как я опубликовал (оба помогут мне учиться) Спасибо заранее! Visual Информация о студии находится в нижней части этой записи. Я использую: Microsoft Visual Studio Premium 2013 (C#).
Мой код:
// preceded by other code in the method
if (Directory.Exists(desktopDestinationPath)) // desktopDestinationPath is "C:\\Users\<me>\\Desktop\\<folder 1>\\<folder 2>"
{
Directory.Delete(desktopDestinationPath, true); // exception is thrown here <***> "C:\\Users\\<me>\\Desktop\\<folder 1>\\<folder 2>"
// create folder
Directory.CreateDirectory(desktopDestinationPath);
// Call a method to perform Xcopy
ProcessXcopy(SourceLoc, desktopDestinationPath);
}
// followed by an else which creates folder if it does not exist
Мой код бросает следующее исключение: // ПРИМЕЧАНИЕ Я использую Pri.Longpath
System.IO.DirectoryNotFoundException был необработанное пользователем кода HResult = -2147024893 Сообщение = Не удалось найти часть пути «C: \ Users \ ljones \ Desktop \ folder 1 \ folder2 \ fldr3 \ fldr4 \ fldr5 \ fldr6 \ fldr7 \ fldr8 \ fldr9 '. Source = mscorlib StackTrace: в System.IO.Directory.DeleteHelper (String fullPath, String userPath, Boolean recursive, Boolean throwOnTopLevelDirectoryNotFound) в System.IO.Directory.Delete (String fullPath, String userPath, логический рекурсивный, логический checkHost) в системе. IO.Directory.Delete (String path, Boolean recursive) в UnitTests.GatMinerTest.CreateDesktopDestinationFolder (String desktopPath) в каталоге c: \ Users \ some folder \ Source \ Workspaces \ some folder \ some folder \ some folder \ some file: строка 93 at UnitTests.GatMinerTest.IcwIntegrationMethod() в c: \ Users \ some folder \ Source \ Workspaces \ some folder \ some folder \ some folder \ some file: строка 65 InnerException:
Из Интернета Я узнал: Исключение DirectoryNotFoundException бросается, когда часть пути к файлу или каталог не найден. Подтвердите , что каталог отображается в указанном месте. Убедитесь, что каталог существует в указанном месте. // Я честно (99.9%) определенный каталог существует. При использовании относительных путей убедитесь, что текущий каталог верен. Путь может быть неправильным, если вы являетесь при допущении неправильного текущего каталога. // Я честно (99.9%) определенный каталог существует
Пожалуйста, переформатируйте свой вопрос. Вы можете выделить 4 пробела, чтобы получить подсветку синтаксиса и блоки кода. –
Вы используете статический путь? – indian
Nevermind, если вы видели предыдущий комментарий, увидели код ошибки, который вы опубликовали. Можете ли вы опубликовать код, который это делает? Скорее всего, у вас проблема с форматированием строк. Правильно ли вы избегаете литералов? Пример: '' C: \\ SomeFolder \\ SomeOtherFolder "или' @ "C: \ SomeFolder \ SomeOtherFolder" ' – alykins