0

В настоящее время я пытаюсь читать файлы (которые пользователь выбирает) и хранить их (с их разрешения). Проблема, с которой я столкнулась, заключается в том, что, установив и включив SkyDrive, у меня есть файлы SMART, отмеченные атрибутом LocallyIncomplete.Файлы FileOpenPicker и LocallyIncomplete (SMART)

Это означает, что приложение SkyDrive хранит ссылку на этот файл в SkyDrive, но фактически не вытягивает весь файл до тех пор, пока пользователь не запросит его (используя его каким-то образом). Это работает отлично, если они получают доступ к файлу в сборщике через приложение SkyDrive (выпадающее вверху слева). Он даже отмечает те, которые не полностью отключены от LocallyIncomplete, не отмечая тех, которые доступны в автономном режиме.

Проблема (которую мне посчастливилось найти) заключается в том, что я включил папку в свое приложение SkyDrive внутри библиотеки (в частности, мою библиотеку документов). Это заставляет все файлы отображаться в сборщике, как и должно быть.

Если я пытаюсь и открыть любые SkyDrive файлы из библиотеки, то оно не только маркировать все из них, как LocallyIncomplete (даже если приложение SkyDrive не делает), но он бросает родной IOException, что невозможно для мое приложение, чтобы поймать. Это происходит, даже если запрашиваемый файл доступен локально через приложение SkyDrive. Это постоянно воспроизводится на моей машине.

При дальнейших исследованиях кажется, что я могу проверить свойство Provider, чтобы убедиться, что файлы с атрибутом LocallyIncomplete поступают из приложения SkyDrive, что является хорошим по крайней мере (в этом я могу избежать неуловимого исключения). На данный момент это будет работать как обходное решение, но оно меньше идеала.

Кроме того, я не смог найти упоминания об этом в Connect/MSDN. Я надеюсь, что MSFT-y не возражает против двойной проверки, чтобы увидеть, есть ли ошибка, поданная для этого, прежде чем я сам ее напишу, так как я не смог ее найти.

Спасибо.

ответ

0

Локально Неполный означает, что файл не загружается на компьютер пользователя на 100%.

Вы можете проверить этот путь

if (!file.Attributes.HasFlag(FileAttributes.LocallyIncomplete)) 
{ 
//dostuff 
} 

где файл имеет тип StorageFile