Что нового

[Файловая система] Создание файла определенного размера

muskat_59

Новичок
Сообщения
23
Репутация
0
Версия AutoIt: 3.3.6.1

Описание: Создание файла определенного размера (10 байт - 10 мбайт) т.е. Указываем значение и получаем файл определенного размера с точностью до байта.

Примечания: Сделать это нужно как можно быстрее и с наименьшим потреблением ресурсов ;)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Код:
$N = 12345678; Number of bytes
$sPath = 'C:\somefile.txt'
$sText = ''
For $i = 1 to $N
    $sText &= '0'
Next
FileWrite($sPath, $sText)
 
Автор
M

muskat_59

Новичок
Сообщения
23
Репутация
0
Прошу прощения, что снова открыл тему.
Код:
$sText &= '0'
^ ERROR
>Exit code: 1    Time: 1.973
в чем проблема, подскажите, пожалуйста
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
muskat_59
Код:
$iByte = 1024 * 1024; 1Мб
$sFile = @ScriptDir & '\test.tst'
$sTest = ''

For $i = 1 To $iByte
	$sTest &= '0'
Next
$hFile = FileOpen($sFile, 2)
FileWrite($hFile, $sTest)
FileClose($hFile)
MsgBox(64, 'Info', FileGetSize($sFile))



Добавлено:
Сообщение автоматически объединено:

muskat_59 [?]
в чем проблема, подскажите, пожалуйста
Добавьте вначале
Код:
$sText = ""
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
{TopicSolvedInfo}
 

kzru_hunter

Осваивающий
Сообщения
144
Репутация
49
Мгновенно создаёт пустой файл любого размера:
Код:
#include <Process.au3>
$FilePath = "D:\123.txt"
$Size = 1024*1024*1024 ; 1Гб
If _RunDOS('fsutil file createnew "' & $filepath & '" ' & $size) Then
	MsgBox(0,"Ошибка", "Файл уже существует либо не может быть создан")
Else
	MsgBox(0,"Ошибка", "Файл успешно создан")
EndIf



Добавлено:
Сообщение автоматически объединено:

Вот ещё, без fsutil:
Код:
#include <WinApi.au3>
$hFile = _WinAPI_CreateFile("D:\123.rar", 3, 6)
_WinAPI_SetFilePointer($hFile, 1024*1024*1024, 1)
_WinAPI_SetEndOfFile($hFile)
_WinAPI_CloseHandle($hFile)
 
Верх