Nano Hash - криптовалюты, майнинг, программирование

Есть ли способ получить доступное дисковое пространство в Silverlight?

В настоящее время я пытаюсь определить доступное дисковое пространство из моего приложения Silverlight.

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

В обычном .NET я бы использовал DriveInfo (см. Как получить информация о диске на C #? для примера), но этот класс отсутствует в Silverlight 5 даже в режиме повышенного доверия.

Итак, есть ли способ определить доступное пространство на диске в Silverlight?


Обновлять:

  • Я согласен с тем, что для моего приложения требуются повышенные привилегии.
  • Меня тоже устраивают решения только для Silverlight 5.
  • Мне нужно что-то, что работает как в Windows, так и в Mac OS, поэтому взаимодействие PInvoke / COM не подходит.

Ответы:


1

Существовали демонстрации файлового браузера, написанные на Silverlight, но они работали с повышенным доверием.

Это означает, что вам придется сразу же заставить пользователя подозревать ваше приложение при первом запуске.

Вероятно, для пользователя лучше иметь хорошо сформулированное сообщение об ошибке, когда у пользователя заканчивается место.

Другой вариант - попытаться увеличить квоту изолированного хранилища на размер самого большого доступного видео.

http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragefile.increasequotato(v=vs.95).aspx

Затем, когда это не удается, просто сообщите пользователю, что для приложения больше места не может быть выделено, и ему может потребоваться удалить старые видео.

21.12.2011
  • Я согласен с использованием повышенного доверия, я поясню это в своем вопросе. 21.12.2011
  • Квота изолированного хранилища (к сожалению) не связана с реальным доступным дисковым пространством, вы можете запросить любую квоту, которую хотите, она просто используется для запроса разрешения у пользователя на запись этой суммы. 21.12.2011
  • вы можете сделать это forum.silverlight.net/t/146323.aspx/1 но это будут только окна. поиск места на диске будет только windows. 21.12.2011
  • Я бы хотел избежать COM-взаимодействия, мне нужно, чтобы он работал и на Mac. 21.12.2011
  • Разве в наши дни нехватка места на диске - очень редкое явление? Я согласен, что вы должны просто потерпеть неудачу, если столкнетесь с этой проблемой, вместо того, чтобы постоянно ее проверять. В лучшем случае, сделайте проверку в Windows с помощью pinvoke и завершитесь неудачно, если вы получите сообщение об ошибке на Mac. 21.12.2011
  • @RobSiklos нет, в моем случае это не такая уж редкость, особенно если учесть, что IsolatedStorage всегда находится на системном диске. Для людей с разделами и небольшим системным разделом загрузка видео очень быстро заполнит раздел. Я пытаюсь реализовать политику «сохранения где угодно» с SL5, чтобы смягчить именно это. 21.12.2011
  • Это длинный снимок, но если вы можете запускать системные команды на MAC при полном доверии, это должен быть простой вопрос запуска команды df и анализа вывода. Где-то в файловой системе может быть даже специальный файл, содержащий эту информацию. 21.12.2011
  • Если вы можете запустить системную команду, вы также можете поставить отдельную утилиту для работы с дисковым пространством с окнами для ее запуска. 21.12.2011
  • Спасибо, подумаю, если ничего лучше не придет. Обратите внимание, что я работаю над общедоступными проектами, а не над бизнесом, поэтому заставить пользователя что-либо установить - это боль. 21.12.2011
  • поэтому у вас должно появиться большое сообщение об ошибке, в котором пользователю предлагается связаться со своим администратором, они, вероятно, в любом случае загрузили свои жесткие диски с личными данными. 21.12.2011

  • 2

    Я добавляю сюда свой ответ, чтобы подвести итог своим открытиям:

    TL / DR: нет простого способа получить доступное дисковое пространство в Silverlight 5, который является кроссплатформенным (Windows / Mac OS).

    • Вы не можете получить доступное дисковое пространство с помощью стандартных вызовов Silverlight. DriveInfo отсутствует в Silverlight 5, повышенные привилегии здесь не учитываются.
    • Квота бесполезна для такого рода вопросов, она не учитывает доступное дисковое пространство.
    • Существуют обходные пути только для Windows, требующие повышенного доверия, с использованием P / Invoke в Win32.
    • Подробную информацию о поддержке файловой системы см. В этой статье: http://www.codeproject.com/KB/silverlight/FileExplorerInSilverlight.aspx
    • Откат - это проверка исключений при записи файлов и предоставление пользователю сообщения во время записи. Люди также предлагают предварительно записать файл при начале загрузки, чтобы обеспечить достаточно места на диске.
    02.01.2012
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..