Как создать временный файл (0x100) для ускорения приложения

Можно использовать

os.listdir(path)

Для ссылки, и больше функций OS смотрит здесь:

6
задан volvox 5 July 2009 в 20:13
поделиться

2 ответа

А как насчет использования метода CreateFile ()?

var
  FileName : PChar;
  hMyFile : THandle;

...

hMyFile := CreateFile(FileName,
                      GENERIC_WRITE,
                      0,
                      nil,
                      CREATE_ALWAYS,
                      FILE_ATTRIBUTE_TEMPORARY,
                      0); 

if (hMyFile = INVALID_HANDLE_VALUE) then begin
  // Error
end;

...

CloseHandle(hMyFile);

Чтобы объединить флаг с FILE_FLAG_DELETE_ON_CLOSE , используйте или :

hMyFile := CreateFile(FileName,
                      GENERIC_WRITE,
                      0,
                      nil,
                      CREATE_ALWAYS,
                      FILE_ATTRIBUTE_TEMPORARY or FILE_FLAG_DELETE_ON_CLOSE,
                      0); 
7
ответ дан 10 December 2019 в 02:52
поделиться

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

Цитата из Страница MSDN для CreateFile () :

Указание атрибута FILE_ATTRIBUTE_TEMPORARY заставляет файловые системы избегать записи данных обратно в запоминающее устройство, если доступно достаточное количество кэш-памяти, поскольку приложение удаляет временный файл после закрытия дескриптора. В этом случае система может полностью избежать записи данных. Хотя он не контролирует кэширование данных напрямую так же, как ранее упомянутые флаги,

2
ответ дан 10 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: