สร้างไฟล์ขนาดใหญ่อย่างรวดเร็วบนระบบ Windows


245

ในหลอดเลือดดำเดียวกันกับสร้างไฟล์ขนาดใหญ่อย่างรวดเร็วบนระบบ Linuxฉันต้องการสร้างไฟล์ขนาดใหญ่บนระบบ Windows อย่างรวดเร็ว โดยขนาดใหญ่ฉันคิด 5 GB เนื้อหาไม่สำคัญ คำสั่งในตัวหรือไฟล์แบตช์สั้นจะดีกว่า แต่ฉันจะยอมรับแอปพลิเคชันหากไม่มีวิธีอื่นที่ง่าย

คำตอบ:


399
fsutil file createnew <filename> <length>

ที่<length>อยู่ในไบต์

fsutil ต้องใช้สิทธิ์ของผู้ดูแลระบบ


6
@ZXX +1 เพื่อจุดประสงค์ของฉันฉันเพียงต้องการระบบไฟล์เพื่อดูพื้นที่ที่ไม่พร้อมใช้งาน แต่ข้อมูลของคุณมีประโยชน์หากมีคนอื่นต้องการสิ่งนี้
Leigh Riffel

22
ไฟล์ fsutil createnew ไม่ได้สร้างไฟล์แบบกระจาย
ต่อ Mildner

7
"fsutil sparse setflag temp.txt" ตั้งค่าสถานะ sparse ทำให้เป็นไฟล์ sparse "fsutil sparse setrange temp.txt 0 1024" ตั้งช่วง
sparseness

มีวิธีที่ไม่มีสิทธิ์ผู้ดูแลระบบหรือไม่
wizlog

3
@ZXX 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
ivan_pozdeev

36

คุณสามารถใช้เครื่องมือSysinternals Contig มันมี-nสวิตช์ที่สร้างไฟล์ใหม่ที่มีขนาดที่กำหนด ไม่เหมือนกับfsutilสิทธิ์การดูแลระบบ


2
ว้าว! ดาวน์โหลดและเรียกใช้งานได้อย่างรวดเร็วมาก บรรทัดที่ฉันใช้คือ m: \ contig -n M: \ SpaceBuffer.tmp 5368709120
Leigh Riffel

6
เพียงแค่ต้องการตรวจสอบว่าไฟล์นี้เป็นไฟล์แบบกระจายหรือไฟล์มีข้อมูลอยู่จริงหรือไม่?
slolife

2
มันไม่ใช่ไฟล์หร็อมแหร็ม (เท่าที่ฉันรู้) และไฟล์นั้นว่างเปล่า
Joey

1
ฉันสับสนที่นี่ ... ถ้ามันเกิดขึ้นทันทีและไม่ใช่ไฟล์หร็อมแหร็มดังนั้นมันจะใช้พื้นที่ว่างในดิสก์จริงอย่างไร
Jason S

2
@ Jason: ได้contigอย่างมีประสิทธิภาพไปที่ไบต์สุดท้ายและเขียนหนึ่งที่0นั่น (เพียงแค่ดูด้วยการตรวจสอบกระบวนการ) Windows จะเติมส่วนที่เหลือด้วยศูนย์ นี่อาจเป็นเรื่องที่มีประสิทธิภาพเท่าที่คุณจะทำได้ด้วยไฟล์ที่ไม่กระจัดกระจายและการสร้างไฟล์ขนาดประมาณ 5 GiB ใช้เวลาเพียงไม่กี่วินาทีแม้ในฮาร์ดดิสก์ของฉัน ฉันเดาแล้วฉันก็ลองทั้ง SSD หรือไฟล์เล็ก ๆ แต่มันค่อนข้างเร็ว (และเร็วกว่าการเขียนไฟล์เปล่าทั้งหมดด้วยตนเอง
Joey

23

ฉันค้นหาวิธีสร้างไฟล์ขนาดใหญ่ที่มีข้อมูลไม่ใช่แค่ไฟล์กระจัดกระจาย มาในเทคนิคด้านล่าง :

หากคุณต้องการสร้างไฟล์ด้วยข้อมูลจริงคุณสามารถใช้สคริปต์บรรทัดคำสั่งด้านล่าง

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 MB ภายในไม่กี่วินาที ...


6
แยกจากลิงค์ด้านบน: หากคุณต้องการสร้างไฟล์ด้วยข้อมูลจริงคุณสามารถใช้สคริปต์บรรทัดคำสั่งด้านล่าง 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 MB ภายในไม่กี่วินาที
Tony Stark

ข้อควรสนใจ: คุณต้องคัดลอกบรรทัดแรกก่อนกด Enter และคัดลอกบรรทัดที่สอง ฉันพยายามคัดลอกสคริปต์ทั้งหมดลงในเชลล์ แต่ก็ไม่มีอะไรเกิดขึ้น
Magiranu

15

ลองดู RDFC http://www.bertel.de/software/rdfc/index-en.html

RDFC อาจไม่ใช่วิธีที่เร็วที่สุด แต่จะจัดสรรบล็อคข้อมูล วิธีที่เร็วที่สุดจะต้องใช้ API ระดับต่ำกว่าเพื่อรับกลุ่มของคลัสเตอร์และใส่ลงในMFTโดยไม่ต้องเขียนข้อมูล

ระวังว่าไม่มีกระสุนเงินที่นี่ถ้า "การสร้าง" ส่งคืนทันทีนั่นหมายความว่าคุณมีไฟล์ที่กระจัดกระจายซึ่งเพิ่งปลอมไฟล์ขนาดใหญ่ แต่คุณจะไม่ได้รับบล็อกข้อมูล / กลุ่มข้อมูลจนกว่าคุณจะเขียนลงไป หากคุณเพิ่งอ่านคือคุณได้ค่าศูนย์ที่เร็วมากซึ่งจะทำให้คุณเชื่อว่าไดรฟ์ของคุณในทันใดนั้นก็เร็วอย่างเห็นได้ชัด :-)


นี่น่าจะเป็นคำตอบที่ดีที่สุด FSUTIL สร้างไฟล์แบบกระจายซึ่งไม่ใช่สถานการณ์การทดสอบที่ถูกต้องสำหรับหลาย ๆ กรณี Sysinternals contig ไม่เคยทำงานให้ฉันเมื่อฉันใช้คำสั่งเช่น "contig -n largefile.bin 6000000000 มันสร้างไฟล์ขนาด 1.7GB ... ??? ขอบคุณสำหรับ RDFC เพราะมันทำงานได้อย่างสมบูรณ์แบบในการลองและเขียนครั้งแรกที่ ความเร็วการเขียนสูงสุดของดิสก์ ATA ของฉัน
Syclone0044

ดังที่ได้กล่าวไว้ข้างต้น FSUTIL“ createnew” ไม่ได้สร้างไฟล์แบบกระจายเพียงแค่จัดสรร (ใน MFT) พื้นที่ที่ร้องขอไปยังไฟล์ที่ร้องขอเช่นพื้นที่เต็ม หากคุณตรวจสอบคุณสมบัติของไฟล์ขนาดที่จัดสรร (ชื่อ "ขนาดบนดิสก์" ที่น่ารำคาญเนื่องจากสามารถอยู่ในอุปกรณ์ใด ๆ ที่ไม่จำเป็นต้องเป็น "ดิสก์") จะคล้ายกันหรือใกล้เคียงกับขนาดจริงมาก ไฟล์กระจัดกระจายจริงที่เต็มไปด้วยเลขศูนย์จะมีขนาดที่จัดสรรเล็กมาก เครื่องมือเดียวที่ฉันพบซึ่งสามารถเปลี่ยนไฟล์ที่ไม่กระจายเป็นไฟล์ sparse (และลดขนาดจริงไม่ใช่แค่ตั้งค่าสถานะ) คือ SparseTest
GabrielB

13

ตรวจสอบWindows Server 2003 เครื่องมือ มีโปรแกรมอรรถประโยชน์ที่เรียกว่า Creatfil

 CREATFIL.EXE
 -? : This message
 -FileName -- name of the new file
 -FileSize -- size of file in KBytes, default is 1024 KBytes

มันคล้ายกับ mkfile บน Solaris


1
ฉันไม่ต้องการดาวน์โหลดชุดเครื่องมือ
Leigh Riffel

คุณต้องการเพียง 1 exe จากชุดทรัพยากรคุณไม่จำเป็นต้องมีทุกอย่างในระบบการผลิตของคุณ
Byron Whitlock

1
ฉันจะลองดู แต่ฉันไม่ต้องการอ้างอิงไฟล์เพิ่มเติม
Leigh Riffel

ไฟล์ไม่สามารถดาวน์โหลดได้อย่างถูกต้องสำหรับฉันตอนนี้ แต่ฉันไม่สามารถจินตนาการได้ว่ามันจะเร็วกว่าเครื่องมือ Contig ที่โยฮันเนสรอสเซลพูดถึง
Leigh Riffel

1
ขอบคุณ! แพ็คเกจที่ดาวน์โหลดคือ rktools.exe และเป็น 11.7 MB และ 18.2 MB เมื่อขยาย โอ้นั่นคือ"creatfil.exe"และไม่ใช่ "createfil.exe" ไฟล์นี้มีขนาด 5.5 KB และนั่นคือทั้งหมดที่คุณต้องการจริงๆ ฉันใช้เวลาน้อยกว่า 1 นาทีในการสร้างไฟล์ 1 GB บนซีพียู quad core 3.0 GHz Intel ด้วยเครื่องมือ fsutil.exe ตามที่โพสต์ด้านบนใช้เวลาเพียงเสี้ยววินาทีในการสร้าง ดังนั้นมันจึงเป็นความจริงเครื่องมือที่สร้างไฟล์แบบเบาบาง มันใหญ่กว่านั้นคือ 73,5 KB อันนี้ดีกว่าสำหรับการสร้างไฟล์ขนาดใหญ่เพื่อการทดสอบ
Samir

11

ฉันต้องการไฟล์ 10 GB ปกติสำหรับการทดสอบดังนั้นฉันจึงไม่สามารถใช้fsutilเพราะมันสร้างไฟล์แบบกระจาย (ขอบคุณ @ZXX)

@echo off

:: Create file with 2 bytes
echo.>file-big.txt

:: Expand to 1 KB
for /L %%i in (1, 1, 9) do type file-big.txt>>file-big.txt

:: Expand to 1 MB
for /L %%i in (1, 1, 10) do type file-big.txt>>file-big.txt

:: Expand to 1 GB
for /L %%i in (1, 1, 10) do type file-big.txt>>file-big.txt

:: Expand to 4 GB
del file-4gb.txt
for /L %%i in (1, 1, 4) do type file-big.txt>>file-4gb.txt

del file-big.txt

ฉันต้องการสร้างไฟล์ 10 GB แต่ด้วยเหตุผลบางอย่างมันมีเพียง 4 GB เท่านั้นดังนั้นฉันต้องการความปลอดภัยและหยุดที่ 4 GB หากคุณต้องการให้แน่ใจว่าไฟล์ของคุณได้รับการจัดการอย่างถูกต้องโดยระบบปฏิบัติการและแอปพลิเคชันอื่น ๆ ให้หยุดขยายที่ 1 GB


คุณต้องใช้อักขระเปอร์เซ็นต์เดียวไม่ใช่สองเท่า นอกจากนี้คุณไม่ต้องการช่องว่างเพิ่มเติมในวงเล็บ ฉันจะแก้ไขให้คุณ
Samir

ระบบปฏิบัติการใดที่คุณใช้อยู่ที่นี่ rmเป็นคำสั่ง Unix / Linux ในขณะที่delเป็นคำสั่ง DOS / Windows ... ?
ซา

นี่ควรเป็นไฟล์แบตช์หรือคุณควรจะออกคำสั่งเหล่านี้ในหน่วย cmd หรือไม่? เครื่องหมายเปอร์เซ็นต์เดียวจะถูกนำมาใช้ในคำสั่งที่ชอบแต่ในไฟล์ชุดคุณใช้เครื่องหมายเปอร์เซ็นต์คู่เหมือน%i %%i
Samir

@Sammy: มันเริ่มต้นด้วยดังนั้นจึงเห็นได้ชัด@echo off .batนั่นเป็นสาเหตุที่มันมีเครื่องหมายสองเปอร์เซ็นต์
f.ardelian

เอาล่ะเราอาจต้องการนำเครื่องหมายเปอร์เซ็นต์กลับมา ทำไมคุณลบfile-4gb.txtก่อนที่จะสร้าง? จะไม่ส่งผลให้เกิดข้อผิดพลาด? จริง ๆ แล้วคุณตั้งใจจะสร้างfile-4gb.txtในบรรทัดนั้นหรือไม่? หรือเปลี่ยนชื่อfile-big.txtไฟล์เก่า? สิ่งนี้ไม่ชัดเจนแม้แต่ไฟล์แบตช์ renถ้าคุณหมายถึงการเปลี่ยนชื่อแล้วคำสั่งที่คุณกำลังมองหาน่าจะเป็น กดren file-big.txt file-4gb.txtไลค์ rmฉันคิดว่าคุณสับสนว่า
Samir

7

เปิด Windows Task Manager, Create dump fileหากระบวนการที่ใหญ่ที่สุดที่คุณได้ทำงานคลิกขวาและคลิกที่

สิ่งนี้จะสร้างไฟล์ที่สัมพันธ์กับขนาดของกระบวนการในหน่วยความจำในโฟลเดอร์ชั่วคราวของคุณ

คุณสามารถสร้างไฟล์ที่มีขนาดเป็นกิกะไบต์ได้อย่างง่ายดาย

ป้อนคำอธิบายภาพที่นี่

ป้อนคำอธิบายภาพที่นี่


2
ทางออกที่ดี! มีประโยชน์หากคุณใช้งานแอปพลิเคชั่นที่หลากหลายเพื่อรับขนาดที่แตกต่างกัน
Don Cheadle

6

สั้น ๆ ในการเขียนแอปพลิเคชั่นเต็มรูปแบบพวกเรา Python สามารถรับไฟล์ได้ทุกขนาดด้วยสี่บรรทัดข้อมูลโค้ดเดียวกันบน Windows และ Linux ( os.stat()บรรทัดเป็นเพียงการตรวจสอบ):

>>> f = open('myfile.txt','w')
>>> f.seek(1024-1) # an example, pick any size
>>> f.write('\x00')
>>> f.close()
>>> os.stat('myfile.txt').st_size
1024L
>>>

1
การติดตั้ง Python เพื่อแก้ปัญหาหนึ่งเป็นเรื่องที่เกินความจริง ทำไมไม่ใช้สิ่งที่สร้างขึ้นเช่น Powershell หรือ C # - gist.github.com/nadams810/6539070 (คุณไม่จำเป็นต้องใช้ Visual Studio ในการรวบรวมแอปพลิเคชัน C #)
Natalie Adams

1
.Net, C # และ Powershell ไม่จำเป็นต้องข้ามแพลตฟอร์ม
gimel

1
พวกเขาสร้างขึ้นใน Windows ซึ่งเป็นสิ่งที่ OP ขอ (สมมติว่าระบบของคุณเป็นรุ่นล่าสุดอย่างสมบูรณ์)
Natalie Adams

@NatalieAdams แต่คำตอบนี้มีประโยชน์มากถ้าคุณติดตั้ง Python ไว้แล้วเพื่อแก้ไขปัญหาอื่น ๆ :)
criptych ย่อมาจาก Monica

6

PowerShell หนึ่งซับเพื่อสร้างไฟล์ในC:\Tempการเติมดิสก์ C: เหลือเพียง 10 MB:

[io.file]::Create("C:\temp\bigblob.txt").SetLength((gwmi Win32_LogicalDisk -Filter "DeviceID='C:'").FreeSpace - 10MB).Close

3
มันจะสร้างไฟล์ด้วยเนื้อหาจริงหรือไฟล์หร็อมแหร็ม
Samselvaprabu

6

ใช้:

/*
Creates an empty file, which can take all of the disk
space. Just specify the desired file size on the
command line.
*/

#include <windows.h>
#include <stdlib.h>

int main (int argc, char* ARGV[])
{
    int size;
    size = atoi(ARGV[1]);
    const char* full = "fulldisk.dsk";
    HANDLE hf = CreateFile(full,
                           GENERIC_WRITE,
                           0,
                           0,
                           CREATE_ALWAYS,
                           0,
                           0);
    SetFilePointer(hf, size, 0, FILE_BEGIN);
    SetEndOfFile(hf);
    CloseHandle(hf);
    return 0;
}

คือintอะไร จะใช้งานได้กับไฟล์ 5 GB หรือไม่ จำกัด เพียง 2 หรือ 4 GB หรือไม่ ที่พารามิเตอร์ตัวที่สามSetFilePointer()คือ 0 แนะนำว่ามันจะไม่ทำงานสำหรับไฟล์ 5 GB
Peter Mortensen

4

ฉันกำลังมองหาวิธีสร้างไฟล์จำลองขนาดใหญ่ที่มีการจัดสรรพื้นที่เมื่อเร็ว ๆ นี้ โซลูชันทั้งหมดดูเคอะเขิน ในที่สุดฉันเพิ่งเริ่มDISKPARTอรรถประโยชน์ใน Windows (ฝังตัวตั้งแต่ Windows Vista):

DISKPART
CREATE VDISK FILE="C:\test.vhd" MAXIMUM=20000 TYPE=FIXED

โดยที่MAXIMUMคือขนาดไฟล์ผลลัพธ์ 20 GB ที่นี่


ทางออกที่ดีที่สุดป่านนี้
Frank FYC

ไม่ได้ผลสำหรับฉัน ไม่มีการสร้างไฟล์อย่างน่าเสียดาย ฉันลองกับสิทธิ์ของผู้ดูแลระบบ
Magiranu

4

ผมพบว่ายูทิลิตี้ที่ดีที่กำหนดค่าได้ที่https://github.com/acch/genfiles

มันเติมไฟล์เป้าหมายด้วยข้อมูลแบบสุ่มดังนั้นจึงไม่มีปัญหากับไฟล์ที่กระจัดกระจายและสำหรับจุดประสงค์ของฉัน (การทดสอบอัลกอริธึมการบีบอัด) มันให้เสียงที่ดีในระดับสีขาว


ยูทิลิตี้นี้เป็นไฟล์แอปพลิเคชัน Java ไฟล์เดียวที่ควรทำงานบนแพลตฟอร์มใด ๆ ที่มี Java
Paul

@MusikPolice - การเชื่อมโยงตาย
dcp

ข้อสังเกต. น่าเสียดายที่เกิดขึ้นหลังจากหกปี
MusikPolice

3

ควรเก็บไฟล์ชั่วคราวในโฟลเดอร์ชั่วคราวของ Windows ขึ้นอยู่กับคำตอบจาก Rodคุณสามารถใช้หนึ่งซับต่อไปนี้เพื่อสร้างไฟล์ชั่วคราวขนาด 5 GB ซึ่งจะคืนชื่อไฟล์

[System.IO.Path]::GetTempFileName() | % { [System.IO.File]::Create($_).SetLength(5gb).Close;$_ } | ? { $_ }

คำอธิบาย:

  • [System.IO.Path]::GetTempFileName() สร้างชื่อไฟล์แบบสุ่มพร้อมส่วนขยายแบบสุ่มในโฟลเดอร์ Windows Temp
  • ไปป์ไลน์ใช้เพื่อส่งชื่อ[System.IO.File]::Create($_)ที่สร้างไฟล์
  • .SetLength(5gb)ชื่อไฟล์ที่มีการตั้งค่าไปยังไฟล์ที่สร้างขึ้นใหม่ด้วย ฉันรู้สึกประหลาดใจเล็กน้อยที่ค้นพบว่า PowerShell สนับสนุนการแปลงไบต์ซึ่งมีประโยชน์จริงๆ
  • ต้องปิดตัวจัดการไฟล์.closeเพื่ออนุญาตให้แอปพลิเคชันอื่นเข้าถึงได้
  • ด้วย;$_ชื่อไฟล์จะถูกส่งกลับและด้วย| ? { $_ }จะมั่นใจได้ว่าเฉพาะชื่อไฟล์ที่ถูกส่งกลับและไม่ได้สตริงว่างกลับโดย[System.IO.File]::Create($_)

3

วิธีที่ง่ายที่สุดที่ฉันพบคือยูทิลิตี้ฟรีนี้: http://www.mynikko.com/dummy/

สร้างไฟล์ดัมมี่ที่มีขนาดตามอำเภอใจซึ่งเต็มไปด้วยช่องว่างหรือเต็มไปด้วยเนื้อหาที่ไม่สามารถบีบอัดได้ (ตัวเลือกของคุณ) นี่คือภาพหน้าจอ:

ป้อนคำอธิบายรูปภาพที่นี่


3

ol ol 'C ... สิ่งนี้สร้างภายใต้ MinGW GCC บน Windows XX และควรทำงานบนแพลตฟอร์ม C' ทั่วไป 'ใด ๆ

มันสร้างไฟล์ Null ขนาดที่ระบุ ไฟล์ผลลัพธ์ไม่ได้เป็นเพียงรายการพื้นที่ครอบครองไดเรกทอรีและในความเป็นจริงนั้นมีจำนวนไบต์ที่ระบุ สิ่งนี้เร็วเนื่องจากไม่มีการเขียนจริงเกิดขึ้นยกเว้นสำหรับไบต์ที่เขียนก่อนปิด

อินสแตนซ์ของฉันสร้างไฟล์ที่เต็มไปด้วยเลขศูนย์ - ซึ่งอาจแตกต่างกันไปตามแพลตฟอร์ม โปรแกรมนี้จัดทำโครงสร้างไดเรกทอรีสำหรับข้อมูลที่แขวนอยู่

#include <stdio.h>
#include <stdlib.h>

FILE *file;

int main(int argc, char **argv)
{
    unsigned long  size;

    if(argc!=3)
    {
        printf("Error ... syntax: Fillerfile  size  Fname \n\n");
        exit(1);
    }

    size = atoi(&*argv[1]);

    printf("Creating %d byte file '%s'...\n", size, &*argv[2]);

    if(!(file = fopen(&*argv[2], "w+")))
    {
        printf("Error opening file %s!\n\n", &*argv[2]);
        exit(1);
    }

    fseek(file, size-1, SEEK_SET);
    fprintf(file, "%c", 0x00);
    fclose(file);
}

ฉันแนะนำให้คุณตรวจสอบว่าฉันจัดรูปแบบรหัสของคุณอย่างไร และ BTW คำถามมีคำตอบที่ดีมากและ fseek + fwrite ได้ถูกนำเสนอใน Pyton และ WinAPI แล้วดังนั้นนี่จึงเป็นความช่วยเหลือเล็กน้อย เป็นเรื่องดี แต่คุณได้ให้ตัวอย่างที่สมบูรณ์แล้ว +1 สำหรับสิ่งนั้น แต่พยายามที่จะคำถามไม่ได้คำตอบอีกครั้งแก้ไขได้แล้วเพียงแค่เสียของเวลาที่คุณสามารถช่วยคนอีกเล็กน้อย :)
Quetzalcoatl

2

ฉันพบวิธีแก้ปัญหาโดยใช้ DEBUG ที่http://www.crid.com/doc/445750/Create-a-Huge-Fileแต่ฉันไม่ทราบวิธีที่ง่ายในการเขียนสคริปต์และดูเหมือนจะไม่สามารถทำได้ เพื่อสร้างไฟล์ที่มีขนาดใหญ่กว่า 1 GB


1
คุณไม่สามารถสร้าง 5 ไฟล์แล้วต่อท้ายไฟล์ได้หรือไม่ สร้างพวกเขาพร้อมกันโดยใช้เธรดแล้วผนวกพวกเขา: D
dassouki

ฉันไม่รู้ว่าฉันสามารถเธรดได้หรือไม่โดยไม่ต้องเขียนโปรแกรม แต่ใช่ฉันสามารถคัดลอกไฟล์สองสามครั้งเพื่อให้ได้ขนาดที่ต้องการ ในกรณีของฉันฉันไม่ต้องการไฟล์ที่ตัวเองเป็น 5GB เพียงพื้นที่ที่ใช้หมด
Leigh Riffel

2
การเขียนไปยังไฟล์หลาย ๆ ไฟล์โดยใช้เธรดดูเหมือนความคิดที่น่ากลัวเนื่องจากฮาร์ดไดรฟ์ช้า ... นอกจากนี้การต่อท้ายไฟล์ยังมีราคาค่อนข้างแพงในแง่ของเวลา
Joey


2

คุณสามารถใช้คำสั่ง cat powershell

ขั้นแรกให้สร้างไฟล์ข้อความแบบง่ายที่มีอักขระสองสามตัว ยิ่งคุณป้อนอักขระเริ่มต้นมากเท่าใดยิ่งเร็วขึ้นเท่านั้น เรียกมันว่า out.txt จากนั้นใน Powershell:

cat out.txt >> out.txt

รอนานเท่าที่จำเป็นเพื่อทำให้ไฟล์มีขนาดใหญ่พอ จากนั้นกด ctrl-c เพื่อสิ้นสุด


1

คุณสามารถลองใช้รหัส C ++ นี้:

#include<stdlib.h>
#include<iostream>
#include<conio.h>
#include<fstream>
#using namespace std;

int main()
{
    int a;
    ofstream fcout ("big_file.txt");
    for(;;a += 1999999999){
        do{
            fcout << a;
        }
        while(!a);
    }
}

อาจใช้เวลาสักครู่ในการสร้างขึ้นอยู่กับความเร็วของ CPU ของคุณ ...


โปสเตอร์ถามอย่างรวดเร็ว สิ่งนี้จะต้องมีการติดตั้งคอมไพเลอร์ C ++

1

คำตอบง่ายๆใน Python: หากคุณต้องการสร้างไฟล์ข้อความตัวจริงขนาดใหญ่ฉันเพิ่งใช้whileวนรอบอย่างง่ายและสามารถสร้างไฟล์ 5 GB ในเวลาประมาณ 20 วินาที ฉันรู้ว่ามันดิบ แต่ก็เร็วพอ

outfile = open("outfile.log", "a+")

def write(outfile):
    outfile.write("hello world hello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello worldhello world"+"\n")
    return

i=0
while i < 1000000:
    write(outfile)
    i += 1
outfile.close()

0

ด่วนเพื่อดำเนินการหรือพิมพ์อย่างรวดเร็วบนแป้นพิมพ์? หากคุณใช้ Python บน Windows คุณสามารถลอง:

cmd /k py -3 -c "with open(r'C:\Users\LRiffel\BigFile.bin', 'wb') as file: file.truncate(5 * 1 << 30)"

0

โซลูชัน GUI อื่น: WinHex

“File” > “New” > “Desired file size” = [X]
“File” > “Save as” = [Name]

ตรงกันข้ามกับโซลูชันที่นำเสนอบางส่วนแล้วจริง ๆ แล้วมันเขียนข้อมูล (ว่าง) บนอุปกรณ์

นอกจากนี้ยังอนุญาตให้เติมไฟล์ใหม่ด้วยรูปแบบที่เลือกได้หรือข้อมูลสุ่ม:

“Edit” > “Fill file” (or “Fill block” if a block is selected)

-1

ฉันได้เพิ่มfsutilวิธีการบางอย่างตามที่กล่าวไว้ในคำตอบที่เลือก นี่คือการสร้างไฟล์ของส่วนขยายที่แตกต่างกันและ / หรือขนาดต่างๆ

set file_list=avi bmp doc docm docx eps gif jpeg jpg key m4v mov mp4 mpg msg nsf odt pdf png pps ppsx ppt pptx rar rtf tif tiff txt wmv xls xlsb xlsm xlsx xps zip 7z
set file_size= 1
for %%f in (%file_list%) do (
fsutil file createnew valid_%%f.%%f %file_size%
) > xxlogs.txt

รหัสสามารถโคลนได้จากhttps://github.com/iamakidilam/bulkFileCreater.git

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.