2010-02-09 11 views
0

Факторы риска для файловой фрагментации включают в себя в основном полные диски и повторные добавления файлов. Каковы другие факторы риска фрагментации файлов? Как сделать программу, использующую общие языки, такие как C++/C#/VB/VB.NET, для работы с файлами & создавать новые файлы с целью увеличения фрагментации файлов?Как создать фрагментацию файловой системы?

WinXP/NTFS является целевой

Edit: Будет что-то вроде этого будет хороший подход? Жесткий диск Свободное пространство = FreeMB_atStart

  • Would создания файлов скажем 10MB для заполнения 90% оставшегося свободного пространства на жестком диске
  • Удаление каждые 3 создан файл
  • делает файл размером FreeMB_atStart * 0,92/3
+1

Почему вы хотите увеличить фрагментацию файлов? –

ответ

3

Это должно достичь, по крайней мере некоторый уровень фрагментации на большинстве файловых систем:

  1. Записывать многочисленные мелкие файлы,
  2. Удалить некоторые из случайных файлов,
  3. Написание большого файла, байт по байт.

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

+0

Нужно ли использовать C++ и Fstream для управления? Чтобы писать побайтно, вы бы просто использовали outputFile.flush после каждого байта? – ExcelCyclist

+0

Ну, было бы намного проще, если бы вы не использовали буферный выходной поток в первую очередь. Как насчет использования putch()? – Jamer

+0

Все равно не поможет. Слишком много операционных систем просто не беспокоят. Кроме того, вы можете записать 512 байт за раз. В любом случае ни одна ОС не использует меньшую единицу размещения. – MSalters

0

Другой возможностью было бы написать несколько файлов одновременно побайтно. Это, вероятно, будет иметь больший эффект.

Смежные вопросы