Я использую IsloatedStorage
в приложении Silverlight для регистрации информации на клиенте, и я добавил функцию для очистки файла журнала.Однако у меня были проблемы с двумя подходами, которые я попробовал:
Подход первый: использовать
IsolatedStorageFile.DeleteFile("log.log");
Результат: эта ошибка завершается и выдает ошибку «[IsolatedStorage_DeleteFile]» (другой информации нет),Функция отлично работает с тестовыми файлами, например, DeleteFile("test.txt")
, но отказывается удалять журнал.Я подумал, что, возможно, журнал используется, и попытался закрыть его с помощью
IsolatedStorageFileStream.close()
Но это возвращает другую ошибку "[IsolatedStorage_StoreNotOpen]".Я знаю, что он открыт, так как предыдущая строка кода успешно регистрирует сообщение.
Второй подход: снова открыть файл журнала в режиме усеченного файла,
_storageFileStream = new IsolatedStorageFileStream(logfilename, FileMode.Truncate, FileAccess.Write, FileShare.ReadWrite, _storageFile);
Согласно MSDN, Truncate "Указывает, что операционная система должна открыть существующий файл. После открытия файл должен быть обрезан, чтобы его размер равнялся нулю." Однако он открывает мой файл журнала и заполняет его пробелом!Размер файла остается идентичным, следующее сообщение журнала добавляется в конец всего пространства.