Ответ 1
Проверьте свойство Length
потока.
Длина представляет количество байтов, находящихся в данный момент в файле.
Если оно равно 0, файл пуст.
Я пытаюсь десериализовать XML файл. Мне нужно проверить, пустой ли поток XML файла, прежде чем привязывать его к десериализации.
IsolatedStorageFileStream isfs1 = new IsolatedStorageFileStream("test.xml",
FileMode.Open, FileAccess.Read, isf);
// Deserialize the XML to an object
Settings s = new Settings();
SoapFormatter SF= new SoapFormatter();
s = (Settings) SF.Deserialize(isfs1);
Как проверить, что isfs1
пуст или нет?
Проверьте свойство Length
потока.
Длина представляет количество байтов, находящихся в данный момент в файле.
Если оно равно 0, файл пуст.
Если ваш файл находится в формате UTF-8, размер составляет не менее 3 из-за спецификации (отметка байтового байта). Поэтому проверка длины > 0 вернет true, даже если ваш файл пуст.
if isfs1.Length = 0 означает, что поток пуст
Будет ли IsolatedStorageFileStream.Length работать?
if (isfs1.Length > 0) {
// isfs1 isn't empty.
}