Как записать файлы на диск
Обновлено: 21.11.2024
В некоторых случаях вам необходимо читать и записывать файлы на диск. Например, вам может потребоваться сохранять данные при запуске приложения или загружать данные из Интернета и сохранять их для последующего использования в автономном режиме.
Чтобы сохранять файлы на диск, объедините подключаемый модуль path_provider с библиотекой dart:io.
В этом рецепте используются следующие шаги:
- Найти правильный локальный путь.
- Создайте ссылку на расположение файла.
- Записать данные в файл.
- Чтение данных из файла.
1. Найдите правильный локальный путь
В этом примере отображается счетчик. Когда счетчик изменится, запишите данные на диск, чтобы вы могли прочитать их снова, когда приложение загрузится. Где хранить эти данные?
Пакет path_provider предоставляет независимый от платформы способ доступа к часто используемым расположениям в файловой системе устройства. Плагин в настоящее время поддерживает доступ к двум местоположениям файловой системы:
Временный каталог Временный каталог (кэш), который система может очистить в любое время. В iOS это соответствует NSCachesDirectory. В Android это значение, которое возвращает getCacheDir(). Каталог документов Каталог, в котором приложение может хранить файлы, к которым имеет доступ только оно. Система очищает каталог только при удалении приложения. В iOS это соответствует NSDocumentDirectory. В Android это каталог AppData.
В этом примере информация хранится в каталоге документов. Вы можете найти путь к каталогу документов следующим образом:
2. Создать ссылку на расположение файла
Как только вы узнаете, где хранить файл, создайте ссылку на его полное местоположение. Для этого можно использовать класс File из библиотеки dart:io.
3. Записать данные в файл
Теперь, когда у вас есть файл для работы, используйте его для чтения и записи данных. Сначала запишите некоторые данные в файл. Счетчик является целым числом, но записывается в файл в виде строки с использованием синтаксиса '$counter'.
4. Считать данные из файла
Теперь, когда у вас есть данные на диске, вы можете их прочитать. Еще раз используйте класс File.
Если вы выберете неправильный ответ, ваш диск не будет работать, и вы создадите еще одну подставку.
Вот правила создания диска:
Музыка. Чтобы создать компакт-диск, который воспроизводит музыку в проигрывателе компакт-дисков или автомобильной стереосистеме, необходимо запустить программу Windows Media Player и записать аудио компакт-диск.
Слайд-шоу фотографий. Windows не включает программу Windows DVD Maker, входящую в состав Windows Vista и Windows 7. Для создания слайд-шоу фотографий вам понадобится сторонняя программа.
Вставьте чистый диск в устройство для записи дисков и задвиньте лоток. Затем нажмите или коснитесь окна уведомления, которое появляется в правом верхнем углу экрана.
Когда в окне уведомления вас спросят, как вы хотите действовать, выберите параметр «Записать файлы на диск».
Windows отображает диалоговое окно "Запись диска" и предлагает вам создать заголовок для диска.
Если окно уведомлений исчезло до того, как вы успели щелкнуть по нему, извлеките диск, вставьте его обратно и приготовьте мышь. (Кроме того, вы можете вернуть окно уведомлений, щелкнув правой кнопкой мыши значок дисковода в проводнике и выбрав параметр «Открыть автовоспроизведение».)
Введите имя диска, опишите, как вы хотите использовать диск, и нажмите "Далее".
К сожалению, Windows ограничивает заголовок вашего компакт-диска или DVD-диска 16 символами. Вместо того, чтобы вводить Семейный пикник на вершине Orizaba в 2012 году, придерживайтесь фактов: Orizaba, 2012. Или просто нажмите "Далее", чтобы использовать имя по умолчанию для диска: текущая дата.
Windows может записывать файлы на диск двумя разными способами. Чтобы решить, какой метод лучше всего подходит для вас, он предлагает вам два варианта:
Как на USB-накопителе. Этот метод позволяет многократно считывать и записывать файлы на диск, что удобно при использовании дисков в качестве портативных носителей файлов. К сожалению, этот метод несовместим с некоторыми проигрывателями компакт-дисков или DVD, подключенными к домашним стереосистемам или телевизорам.
С проигрывателем CD/DVD: если вы планируете воспроизводить свой диск на достаточно новом домашнем стереопроигрывателе дисков, который достаточно умен, чтобы читать файлы, хранящиеся в нескольких различных форматах, выберите этот метод.
Вооружившись именем диска, Windows подготавливает диск для входящих файлов.
Укажите Windows, какие файлы нужно записать на диск.
Теперь, когда ваш диск готов принять файлы, сообщите Windows, какую информацию отправлять. Вы можете сделать это любым из нескольких способов:
Перетащите файлы и/или папки в окно проводника на диске.
Щелкните правой кнопкой мыши элемент, который хотите скопировать, будь то отдельный файл, папка или выбранные файлы и папки. Когда появится всплывающее меню, выберите «Отправить» и выберите устройство записи дисков в меню. (Во всплывающем меню отображается название диска, которое вы выбрали на шаге 2.)
Перетащите файлы и/или папки поверх значка записывающего устройства в проводнике.
В папке «Моя музыка», «Мои рисунки» или «Мои документы» перейдите на вкладку «Общий доступ» и нажмите «Записать на диск». Эта кнопка копирует все файлы этой папки (или только файлы, которые вы выбрали) на диск в виде файлов.
Укажите текущей программе сохранять информацию на диск, а не на жесткий диск.
Независимо от того, какой метод вы выберете, Windows внимательно просматривает информацию и копирует ее на диск, который вы вставили на первом этапе. Появится окно прогресса, показывающее ход работы устройства записи дисков. Когда окно хода выполнения исчезнет, Windows завершила запись диска.
Закройте сеанс записи диска, извлекая диск.
По завершении копирования файлов на диск нажмите кнопку "Извлечь" на диске (или щелкните правой кнопкой мыши значок диска в проводнике и выберите "Извлечь"). Windows закрывает сеанс, добавляя последний штрих к диску, который позволяет другим ПК читать его.
Если вы попытаетесь скопировать на диск большой пакет файлов — больше, чем поместится, — Windows немедленно сообщит об этом. Копируйте меньше файлов за раз, возможно, разместив их на двух дисках.
Большинство программ позволяют сохранять файлы непосредственно на диск. Выберите «Сохранить» в меню «Файл» и выберите устройство для записи компакт-дисков. Вставьте диск (желательно незаполненный) в дисковод, чтобы начать процесс.
Бендж Эдвардс
Бендж Эдвардс
помощник редактора
Бендж Эдвардс — помощник редактора How-To Geek. Более 15 лет он писал о технологиях и истории технологий для таких сайтов, как The Atlantic, Fast Company, PCMag, PCWorld, Macworld, Ars Technica и Wired. В 2005 году он создал блог Vintage Computing and Gaming, посвященный истории технологий. Он также создал подкаст The Culture of Tech и регулярно участвует в подкасте Retronauts о ретро-играх. Подробнее.
Вачивит/Шаттерсток/Бендж Эдвардс
Иногда вам нужно записать CD или DVD, чтобы поделиться файлами с другими, сделать резервную копию или передать информацию между машинами. Хотя сейчас мы предпочитаем использовать для этих целей USB-накопители и сетевые передачи, Windows 10 по-прежнему позволяет легко записывать («прожигать») диски CD-R или DVD-R. Вот как это сделать.
Во-первых: основы
Прежде чем мы начнем, предположим, что у вас есть дисковод для оптических носителей, способный записывать на выбранный вами тип диска. Это может быть внутренний диск или тот, который подключается к компьютеру через USB. Мы также предполагаем, что у вас установлены все необходимые драйверы. К счастью, Windows 10 работает с большинством приводов CD-R/W и DVD-R/W автоматически через Plug and Play, поэтому вам может даже не понадобиться устанавливать драйвер.
Энди Хейворд/Shutterstock
Вам также понадобятся чистые диски CD-R, CD-RW, DVD-R или DVD-RW, которые подходят к вашему дисководу. А DVD-диски емкостью 4,7 ГБ (или двухслойные DVD-диски емкостью 8,5 ГБ) содержат значительно больше данных, чем компакт-диски, которые обычно могут содержать только около 700 МБ. Вот чем отличаются перезаписываемая и перезаписываемая версии носителя.
- CD-R, DVD-R: Эти типы дисков позволяют только записывать данные на диск. Их нельзя стереть физически, хотя Windows может игнорировать «удаленные» файлы на диске, если вы выберете Live File System (см. «Как записать CD или DVD с Live File System» ниже).
- CD-RW, DVD-RW: эти типы дисков позволяют записывать данные и стирать их с диска, хотя стирать их можно только определенное количество раз (обычно около 1000), которое зависит от марки носителя. .
При выборе носителя обратите внимание на совместимость дисков: большинство приводов DVD с возможностью записи также могут записывать диски CD-R, но приводы CD-R не могут записывать диски DVD-R. Кроме того, вы не можете читать DVD в дисководе для компакт-дисков.
Выбор способа записи диска в Windows
Приступим. Войдите на свой компьютер с Windows и вставьте чистый записываемый компакт-диск или DVD-диск в дисковод для оптических дисков. Как только вы вставите его, появится окно с названием «Записать диск». В этом диалоговом окне вас спросят, как вы хотите, чтобы Windows обрабатывала запись на диск. Вот варианты и их значение.
- Как на USB-накопителе: это позволяет записывать и стирать файлы на диске на лету, используя живую файловую систему, без финализации или «мастеринга» диска.Если вы используете диск CD-R или DVD-R только для записи и удаляете файл, этот файл больше не будет отображаться в Windows, но место на диске все равно будет занимать. Но если вы используете перезаписываемый диск, вы можете стирать файлы по ходу дела, не стирая сразу весь диск. Недостатком является то, что диски, созданные таким образом, обычно несовместимы с машинами старше Windows XP.
- С проигрывателем CD/DVD: это более традиционный метод «мастеринга» дисков. Когда вы копируете файлы на диск, они сначала временно копируются в промежуточную область на вашем жестком диске, а затем они сразу записываются на диск, когда вы выбираете «Записать» в проводнике. Положительным моментом является то, что диски, созданные таким образом, более совместимы со старыми версиями Windows.
Выбрав метод записи, выберите его. Затем введите название диска и нажмите «Далее».
Что произойдет дальше, зависит от того, какой вариант вы выбрали. Ниже мы рассмотрим каждый из них отдельно.
Как записать CD или DVD с живой файловой системой («как USB-накопитель»)
Если в последнем меню вы выбрали вариант использования диска «Как USB-накопитель», то для записи на CD- или DVD-носитель не требуется никаких дополнительных действий. Откроется окно File Explorer для вашего оптического дисковода, и для записи в него все, что вам нужно сделать, это скопировать файлы прямо на дисковод в File Explorer. Вы можете перетаскивать файлы в окно или копировать и вставлять их туда.
Как упоминалось выше, вы можете удалять файлы с помощью этого метода, но если вы используете диск CD-R или DVD-R, вы удаляете их только логически. «Удаленные» данные все еще физически записываются на диск, но становятся недоступными. Так, например, у вас есть 700 МБ свободного места, и вы копируете на диск 10 МБ данных. Теперь у вас есть 690 МБ свободного места. Если вы удалите 10 МБ данных, у вас останется только 690 МБ свободного места.
С другой стороны, если вы используете перезаписываемый формат диска, Windows удалит файлы на лету, и вы сможете восстановить место на диске за счет удаления файлов.
Как только вы захотите извлечь диск, Windows выполнит некоторую финализацию, прежде чем дисковод вытолкнет диск. После этого вы можете снова вставить его и снова записать или прочитать на другом компьютере.
Как записать мастеринг CD или DVD («с CD/DVD-плеером»)
Если в последнем меню вы выбрали вариант «использовать диск с проигрывателем компакт-дисков/DVD», дисковод оптических дисков откроется в окне Проводника. В окне вы увидите заголовок «Файлы готовы к записи на диск».
Когда вы перетаскиваете (или копируете и вставляете) файлы в это окно, они будут появляться в этом окне, которое по сути является промежуточной областью для окончательного мастер-диска. Файлы не будут физически записаны на фактический диск, пока вы не решите записать диск в проводнике.
Когда вы закончите копирование всего, что хотите записать на диск, выберите «Инструменты диска» в меню панели инструментов окна проводника, затем выберите «Завершить запись».
(Вы также можете щелкнуть правой кнопкой мыши значок оптического дисковода в проводнике и выбрать «Записать на диск».)
Появится мастер записи на диск. Введите название диска, затем выберите скорость записи. Обычно безопасно выбирать максимально возможную скорость. Затем нажмите «Далее».
Далее вы увидите индикатор выполнения и примерное время до завершения записи файлов на диск.
По завершении процесса диск будет автоматически извлечен из дисковода оптических носителей, и мастер спросит, хотите ли вы записать те же файлы на другой диск. Если это так, установите флажок «Да, записать эти файлы на другой диск», затем нажмите «Далее». Вы снова пройдете тот же процесс.
Если вы уже закончили запись дисков, просто нажмите "Готово".
После этого ваш только что записанный CD или DVD готов к использованию.
Имейте в виду, что наука показала, что записываемые диски CD и DVD не являются архивными носителями, а это означает, что существует высокий риск того, что оптические носители низкого качества могут потерять ваши данные, просто пролежав на полке несколько лет. В результате мы не рекомендуем использовать их для долгосрочного резервного копирования — вместо этого рассмотрите внешний жесткий диск или облачный сервис. Но оптические диски могут быть полезны в крайнем случае, если вы понимаете риски.
- › Как записать образ ISO на диск в Windows 10
- › Что означает «Запись компакт-диска»?
- › Как установить Google Play Маркет в Windows 11
- › Почему не было Windows 9?
- › 5 лучших бесплатных облачных хранилищ
- › Как восстановить метки панели задач в Windows 11
- › Почему прозрачные чехлы для телефонов желтеют?
- ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
Мне нужно записать несколько файлов на диск, где поиск и запись выполняются быстрее всего. Существуют ли какие-либо библиотеки или инструменты, с помощью которых мы можем направить ОС (операционную систему) или приложение для записи файлов в определенный раздел жесткого диска?
Получите помощь в своем исследовании
Присоединяйтесь к ResearchGate, чтобы задавать вопросы, получать отзывы и продвигать свою работу.
Последний ответ
Тем не менее, характеристики производительности дискового устройства обычно влияют на приложение только в том случае, если данные, которые нужно прочитать, не содержатся в кэше (промах чтения) или политика кэширования использует сквозную запись (хост не уведомляется о завершении ввода-вывода). пока эти данные не будут записаны на диск - кэш-память считается энергозависимой).
Кэш-устройства с резервным аккумулятором могут считаться энергонезависимыми (в том числе устройства с твердотельными дисками — кэширование без резервных дисков), но могут возникать сбои, приводящие к потере данных (пожалуйста, не используйте для моего банковского счета).< /p>
Спасибо, что указали на системный раздел подкачки. Это единственное приложение ввода-вывода, которое передает большие блоки данных за один ввод-вывод (таким образом, больше всего выигрывает от увеличения скорости передачи данных в кэше со сквозной записью) и может повлиять на производительность всех хост-приложений. Однако при высокой скорости ввода-вывода подкачки это также гарантирует, что другие разделы будут страдать от более длительных задержек ввода-вывода, чем в среднем, поскольку головка r/w часто будет располагаться далеко от местоположения запрошенных данных.
Популярные ответы (1)
[*] Хотя теоретически диски могут отображать LBA как угодно, на практике это происходит только для поврежденных блоков, обнаруженных во время выполнения. (обнаруженные на заводе-изготовителе переназначаются путем пропуска нумерации LBA) Файловые системы были разработаны для обеспечения производительности, предполагающей наивное сопоставление LBA с дорожкой, и по мере развития дисков они предназначены для хорошей работы с существующими файловыми системами, поэтому они сохраняют это сопоставление с немного изменений.
Единственный разумный способ принудительно разместить данные в начале диска — разбить диск на разделы и использовать первый раздел. многие люди клянутся, что помещают раздел подкачки в начало диска, чтобы повысить производительность. (в то время как другие люди предпочли бы отдать быстрый раздел файловой системе)
Разница между концами диска составляет примерно 2x, но если вы не выполняете большие непрерывные чтения и записи (10 МБ или более), время поиска и накладные расходы ОС будут преобладать. Кроме того, если производительность хранилища действительно важна, вам следует рассмотреть возможность использования SSD или гибридной системы диска/SSD — см., например, работа dm-cache Международного университета Флориды, доступная на Github.
Все ответы (15)
Я думаю, что здесь есть некоторые основные заблуждения, что определенные сектора будут быстрее на дисках. Это может быть функция контроллера диска, использование им кэш-памяти со сквозной записью, чередование многодискового массива и т. д. и т. д. Интеллектуальные дисковые подсистемы могут виртуализировать такие идеи, игнорируя любые намерения операционной системы или приложений.Если можно гарантировать, что ваше приложение будет работать только на определенной аппаратной конфигурации — на время его существования вы сможете оптимизировать производительность конкретной дисковой системы, просто управляя физическим распределением тайлов, но на практике я думаю, что такие усилия бесполезны.< /p>
Как отмечает Джеймс, это сложно сделать из-за прошивки жесткого диска и LBA (адрес логического блока), но вы можете получить доступ к дискам в Linux с помощью интерфейсов SCSI на блочном уровне — sg3_utils особенно удобен — в Ubuntu Linux. выполните «sudo apt-get install sg3-utils», и это отличный способ узнать больше о любых дисках SAS (и многих SATA, которые используют контроллеры SAS с STP), подключенных к Linux. В прежние времена жесткие диски были «короткоходными», что означало, что задержка случайного поиска и вращения с высокой задержкой (обычно 5 мс) была минимизирована за счет уменьшения диапазона поиска (с вращением мало что можно сделать) — в лучшем случае это означает, что, возможно, эта задержка вдвое - реальная проблема заключается в том, что жесткие диски являются механическими и поэтому всегда будут ограничены скоростью вращения (максимум 15 000 об / мин) и временем поиска головки для каждой дорожки / цилиндра. Итак, я согласен, что это не очень хорошее использование вашего времени. Я бы предложил: 1) RAID с чередованием и зеркалированием (RAID-10) или 2) SSD (твердотельный диск) или 3) использовать оба. Буферный кеш поможет вам, как уже было указано, но не для устойчивых операций записи или больших и непрерывных операций чтения, которые носят более случайный характер (проверьте slabtop в Linux) — с slabtop, если вы выполняете агрессивный ввод-вывод, вы увидите, как работает из буферного кеша (например, я работал с 10G iSCSI и SSD/RAID и видел, что буферный кеш просто заполняется в большинстве моих тестов). Жесткий диск имеет большую емкость (около 10 центов за гигабайт) и поэтому всегда будет полезен, но доступ, особенно произвольный доступ, не является сильной стороной жесткого диска (хорошо на последовательном, но все еще ограничено 200 МБ/с в круглых числах - только 200 случайных вводов-выводов — настоящий облом). Я предлагаю вам полностью переосмыслить и рассмотреть либо RAID, либо SSD / PCIe Nand Flash (FusionIO, Virident, Intel, Micron), а в будущем — карты NVMexpress. Флэш-память по-прежнему стоит около 50 центов за гигабайт и имеет некоторые ограничения, но в последнее время она добилась огромных успехов и хорошо сочетается с обработкой транзакций и конкретным использованием вместе с RAID для получения параллельной производительности от жестких дисков. Удачи!
Я хотел поделиться небольшой информацией, полученной от одного моего друга, работающего в Samsung. Я задал тот же вопрос, и ответ был очень интересным.
Верно то, что скорость чтения и записи различается на разных дорожках, также верно и то, что ОС не имеет большого контроля над тем, где физически записывается информация.
Теперь, если мы вернемся на пару десятилетий назад, проигрыватели компакт-дисков, которые мы использовали для прослушивания музыки, когда она начинается с первой дорожки (обычно на внутренних дорожках), компакт-диск вращается с большей скоростью, и когда песни воспроизводятся , вращение замедляется. Эта конструкция была очень эффективной с точки зрения стоимости. Жесткие диски также были основаны на том же принципе. Это позволило упростить аппаратную конструкцию встроенных контроллеров жестких дисков. Один-единственный контроллер, работающий на одной тактовой частоте, давал очень недорогие платы. Большинство производителей отдали предпочтение этому подходу из-за низкой стоимости картона. Управление скоростью вращения шпинделя было проще, чем управление скоростью операции чтения/записи.
Скажем так: если жесткий диск вращается с постоянной скоростью, данные под головкой чтения-записи (RW) будут сталкиваться с битами с пластины (диска) с разной скоростью. внутренние дорожки будут давать меньше битов, чем внешние дорожки (в секунду). То же самое произойдет при записи данных на пластину. Также голова должна оставаться на некоторое время, чтобы намагнитить пластину для хранения информации. это сильно зависит от материала диска и силы намагничивания головки RW.
Теперь, если диск вращается с постоянной скоростью, операции чтения и записи станут очень сложными для контроллера. контроллер должен адаптироваться к разной скорости гусеницы. По мере выхода на внешнюю дорожку скорость RW увеличивается.
Решение для скалывания состоит в том, чтобы замедлить скорость вращения шпинделя, когда головка движется наружу. следовательно, все остальное оборудование становится очень простым в проектировании, одна скорость для записи, чтения и передачи данных. Хороший способ снизить расходы.
Недавно некоторые производители начали использовать эту ситуацию. С появлением более дешевых контроллеров и низкой себестоимости встроенные контроллеры стали более гибкими при чтении битов с пластины с разной скоростью. Следовательно, одиночный трек может быть прочитан на разных оборотах в минуту. Любой производитель пытается увеличить этот разрыв, выигрывает в производительности. Однако у этого есть некоторые незначительные ограничения и очень важный баланс затрат и производительности.Встроенные контроллеры также стали иметь большую кэш-память (2–32 МБ), чтобы компенсировать разницу в скорости чтения и записи. Теперь есть жесткий диск, который может выполнять последовательную операцию на скорости 200 Мбит/с. Изменения скорости шпинделя были уменьшены, когда головка RW может работать с разной скоростью шпинделя на одной и той же дорожке (или соседних дорожках).
Операционная система обычно не имеет понятия о скорости RW, потому что теперь есть кеш с контроллером, и ОС не нужно знать стратегию контроллеров для чтения/записи данных на диск. Следовательно, ни один API не раскрывается на таком детальном уровне. (Конечно, были некоторые исключения, когда ОС могла ссылаться на физический блок и несколько параметров, но мы никогда не узнаем, действительно ли это делает контроллер, и это может быть открытым аргументом и зависит от производителей!) < /p>
У таких компаний, как Samsung, Toshiba и WD, есть специализированные научно-исследовательские центры, в которых проводятся многочисленные исследования, направленные на то, чтобы сделать пластины и контроллеры более гибкими и дешевыми. есть много деталей, которые ушли в эти бортовые контроллеры и довольно тщательно охраняются и не раскрывают дизайн. В этих областях также имеется множество патентов.
API тоже не остались без внимания. Как должна обрабатываться команда, куда записывать, как фрагментировать, сколько кэшировать и т. Д. Контроллер также усложнился с новой линейкой жестких дисков (они отделены от управления операционной системой). < /p>
Я надеюсь, что в следующем году появятся варианты записи файлов в определенные области диска, чтобы использовать преимущества.
Читайте также: