В том же духе, что и Быстрое создание большого файла в системе Linux , я бы хотел быстро создать большой файл в системе Windows. По большому счету я думаю 5 ГБ. Содержание не имеет значения. Встроенная команда или короткий командный файл предпочтительнее, но я приму заявку, если нет других простых способов.
windows
batch-file
Ли Риффель
источник
источник
fsutil file createnew
НЕ создает разреженные файлы:c:\>fsutil file createnew test.txt 0x100000
File c:\test.txt is created
c:\>fsutil sparse queryflag test.txt
This file is NOT set as sparse
Вы можете использовать инструмент Sysinternals Contig . Он имеет
-n
переключатель, который создает новый файл заданного размера. В отличие от этогоfsutil
, он не требует административных привилегий.источник
contig
фактически идет к последнему байту и записывает туда один0
(просто посмотрите на Process Monitor). Затем Windows заполняет все остальные нулями. Вероятно, это примерно так же эффективно, как вы можете получить с не разреженными файлами, а создание файла размером около 5 ГБ занимает всего несколько секунд даже на моем жестком диске. Я думаю, тогда я пробовал либо на SSD или с меньшими файлами. Но это довольно быстро (и определенно быстрее, чем писать все байты пустого файла самостоятельно.Я искал способ создания больших файлов с данными, а не только разреженных файлов. Наткнулся на приведенную ниже технику :
источник
echo "This is just a sample line appended to create a big file.. " > dummy.txt for /L %i in (1,1,14) do type dummy.txt >> dummy.txt
(Выполните две вышеуказанные команды одну за другой или вы можете добавить их в командный файл.) Вышеуказанные команды создают файл dummy.txt размером 1 МБ в течение нескольких секунд.Проверьте RDFC http://www.bertel.de/software/rdfc/index-en.html
RDFC, вероятно, не самый быстрый, но он выделяет блоки данных. Абсолютно быстрым будет использование низкоуровневого API, чтобы просто получить цепочки кластеров и поместить их в MFT без записи данных.
Остерегайтесь, что здесь нет серебряной пули - если «создание» возвращается мгновенно, это означает, что у вас есть разреженный файл, который просто подделывает большой файл, но вы не получите блоки данных / цепочки, пока не напишите в него. Если вы просто прочитаете, вы получите очень быстрые нули, которые могут заставить вас поверить, что ваш диск внезапно стал невероятно быстрым :-)
источник
Проверьте средства набора ресурсов Windows Server 2003 . Есть утилита под названием Creatfil.
Это похоже на mkfile на Solaris.
источник
Мне нужен был обычный файл размером 10 ГБ для тестирования, поэтому я не мог его использовать,
fsutil
поскольку он создает разреженные файлы (спасибо @ZXX).Я хотел создать файл размером 10 ГБ, но по какой-то причине он показывал только 4 ГБ, поэтому я хотел быть в безопасности и остановился на 4 ГБ. Если вы действительно хотите быть уверенным, что операционная система и другие приложения будут правильно обрабатывать ваш файл, прекратите расширять его до 1 ГБ.
источник
rm
команда Unix / Linux, а командаdel
DOS / Windows? ...%i
но в пакетном файле вы используете двойной знак процента, как%%i
.@echo off
, так что это очевидно.bat
. Вот почему у него были двойные знаки процента.file-4gb.txt
перед созданием? Не приведет ли это к ошибке? Вы действительно хотели создатьfile-4gb.txt
на этой линии? Или переименовать старыйfile-big.txt
файл? Это неясно даже для командного файла. Если вы хотели переименовать его, то, вероятно, вам нужна командаren
. Какren file-big.txt file-4gb.txt
. Я думаю, что вы перепутали это сrm
.Откройте диспетчер задач Windows, найдите самый большой процесс, который у вас запущен, щелкните правой кнопкой мыши и нажмите
Create dump file
.Это создаст файл относительно размера процесса в памяти во вашей временной папке.
Вы можете легко создать файл размером в гигабайты.
источник
Если не считать полноценного приложения, мы, ребята из Python, можем получить файлы любого размера с четырьмя строками, одним и тем же фрагментом в Windows и Linux (эта
os.stat()
строка - просто проверка):источник
PowerShell с одним вкладышем для создания файла
C:\Temp
на диске C: осталось всего 10 МБ:источник
Использование:
источник
int
? Будет ли это работать для файла 5 ГБ? Это ограничено 2 или 4 ГБ? Третий параметр,SetFilePointer()
равный 0, предполагает, что он не будет работать для файла объемом 5 ГБ.Я недавно искал способ создать большой фиктивный файл с распределением пространства. Все решения выглядят неловко. Наконец, я только запустил
DISKPART
утилиту в Windows (встроенная начиная с Windows Vista):Где MAXIMUM - размер результирующего файла, здесь 20 ГБ.
источник
Я нашел отличную утилиту, которую можно настроить по адресу https://github.com/acch/genfiles .
Он заполняет целевой файл случайными данными, поэтому проблем с разреженными файлами не возникает, и для моих целей (тестирование алгоритмов сжатия) он дает хороший уровень белого шума.
источник
Временные файлы должны храниться в папке временных файлов Windows. Основываясь на ответе Рода, вы можете использовать следующую строку для создания временного файла объемом 5 ГБ, который возвращает имя файла
Объяснение:
[System.IO.Path]::GetTempFileName()
генерирует случайное имя файла со случайным расширением в папке Temp Windows[System.IO.File]::Create($_)
которого создается файл..SetLength(5gb)
. Я был немного удивлен, обнаружив, что PowerShell поддерживает преобразование байтов , что действительно полезно..close
чтобы другие приложения могли получить к нему доступ;$_
этом возвращается имя файла и при| ? { $_ }
этом гарантируется, что возвращается только имя файла, а не пустая строка, возвращаемая[System.IO.File]::Create($_)
источник
Самый простой способ, который я нашел, это бесплатная утилита: http://www.mynikko.com/dummy/
Создает фиктивные файлы произвольного размера, которые либо заполнены пробелами, либо заполнены несжимаемым содержимым (на ваш выбор). Вот скриншот:
источник
Простой C '... он построен под MinGW GCC на Windows XX и должен работать на любой' общей 'платформе C.
Он генерирует нулевой файл указанного размера. Результирующий файл НЕ является просто записью, занимающей место в каталоге, и фактически занимает указанное количество байтов. Это быстро, потому что никакие фактические записи не происходят, за исключением байта, записанного перед закрытием.
Мой экземпляр создает файл, полный нулей - это может варьироваться в зависимости от платформы; Эта программа, по сути, устанавливает структуру каталогов для любых данных.
источник
Я нашел решение с помощью DEBUG на http://www.scribed.com/doc/445750/Create-a-Huge-File , но я не знаю простой способ написать его, и он, кажется, не в состоянии создавать файлы размером более 1 ГБ.
источник
... 1 МБ файл dummy.txt в течение нескольких секунд.
Смотрите здесь: http://www.windows-commandline.com/how-to-create-large-dummy-file/
источник
Вы можете использовать команду cat powershell.
Сначала создайте простой текстовый файл с несколькими символами. Чем больше начальных символов вы вводите, тем быстрее они становятся больше. Давайте назовем это out.txt. Тогда в Powershell:
Подождите, пока необходимо сделать файл достаточно большим. Затем нажмите Ctrl-C, чтобы закончить.
источник
Вы можете попробовать этот код C ++:
Может потребоваться некоторое время для генерации в зависимости от скорости вашего процессора ...
источник
Простой ответ на Python: если вам нужно создать большой реальный текстовый файл, я просто использовал простой
while
цикл и смог создать файл размером 5 ГБ примерно за 20 секунд. Я знаю, что это грубо, но это достаточно быстро.источник
Быстро выполнить или быстро набрать на клавиатуре? Если вы используете Python в Windows, вы можете попробовать это:
источник
Другое решение с графическим интерфейсом: WinHex.
Вопреки некоторым уже предложенным решениям, он фактически записывает (пустые) данные на устройство.
Это также позволяет заполнить новый файл выбранным шаблоном или случайными данными:
источник
Я сделал несколько дополнений к тому же
fsutil
методу, который упоминался в выбранном ответе. Это делается для создания файлов разных расширений и / или разных размеров.Код можно клонировать с https://github.com/iamakidilam/bulkFileCreater.git.
источник