Хорошо, проблема решена, проблема была в том, что файлы не удалялись правильно. Причина, по которой я был сбит с толку, заключается в том, что класс IsolatedStorageFile не предупреждает вас, когда вы удаляете неверный файл. Вот правильный код и некоторые примечания:
public static void DeleteDirectoryRecursive(this IsolatedStorageFile isf, string dir)
{
foreach (var file in isf.GetFileNames(dir))
{
isf.DeleteFile(dir + file);
}
foreach (var subdir in isf.GetDirectoryNames(dir))
{
isf.DeleteDirectoryRecursive(dir + subdir + "\\");
}
isf.DeleteDirectory(dir.TrimEnd('\\'));
}
Примечания:
- нет разницы между '\' и '/' в путях к файлам
- trimEnd () требуется, когда DeleteDirectory в противном случае генерируется исключение «путь должен быть допустимым именем файла».
- GetFileNames () и GetDirectoryNames () возвращают только часть имени, а не полный путь. поэтому, чтобы использовать каждый результат, вам нужно объединить его с каталогом (в этом примере - DeleteFile ())