如何创建临时文件(0x100)以加速应用程序

2023-11-27

我见过Windows系统使用临时文件来提高某些任务的性能。当我查看这些文件时,它们被标记为 0x100 属性。我从 Microsoft 收到以下文本:“

通过使用 CreateFile() 和 FILE_ATTRIBUTE_TEMPORARY 标志,你让 系统知道该文件是 可能是短暂的。这 像平常一样创建临时文件 文件。系统需要做最少的事情 文件的惰性写入量 系统保存磁盘结构 (目录等)一致。 这看起来是 文件已写入磁盘 ”。

有使用 Delphi 创建此类临时文件的示例吗?

Thanks.

[EDIT]

补充问题:使用此类文件的上下文可能是什么,例如,它是否可以用于日志系统。日志是带有 temp 属性的文件吗?当日志变得非常大时,它会更快并且更少占用内存吗?

[EDIT]

好的,我已经使用下面 schnaader 给出的解决方案和 FILE_ATTRIBUTE_TEMPORARY 创建文件:

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

此类文件在创建时获得 0x120 属性。因此根据系统的临时文件。

我还创建了一个带有 FILE_FLAG_DELETE_ON_CLOSE 标志的文件(请参阅 L. Osterman 的这篇文章).

So:

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

该文件没有任何属性,并且当应用程序关闭或销毁时该文件会自动删除。

我没有找到如何将属性和标志结合起来。任何想法?

Thanks


那么,使用 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, use or:

hMyFile := CreateFile(FileName,
                      GENERIC_WRITE,
                      0,
                      nil,
                      CREATE_ALWAYS,
                      FILE_ATTRIBUTE_TEMPORARY or FILE_FLAG_DELETE_ON_CLOSE,
                      0); 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建临时文件(0x100)以加速应用程序 的相关文章

  • 为什么变量被声明为 TStrings 并被创建为 TStringList?

    为什么变量声明为TStrings并创建为TStringList 例如 varsl被声明为TStrings但创建为TStringList var sl TStrings begin sl TStringList Create add stri
  • 如何在以管理员身份运行模式下部署应用程序?

    如何部署应用程序 使其需要管理员权限 而无需最终用户手动执行此操作 我使用 Delphi 2009 来构建该应用程序 您可以使用以下命令通知 Windows 您的应用程序需要以管理员身份运行requestedExecutionLevel应用
  • 在 Delphi 中,我的 DLL 中是否必须分配函数的返回 pchar

    我有一个 DLL 其中有一个返回 pchar 的函数 以避免必须使用 borlndmm 我最初所做的是将字符串转换为 pchar 并返回 Result pChar SomeFuncThatReturnsString 但 90 的情况下我都能
  • 使用 gmail 和 Indy 发送电子邮件

    我正在尝试使用 gmail 从 Delphi 发送电子邮件 我有 Indy 10 5 9 0 和 Delphi XE3 我从以下位置获得了示例代码 http www andrecelestino com delphi xe envio de
  • 如何解决内存分段并强制FastMM释放内存给OS?

    注意 32 位应用程序不计划迁移到 64 位 我正在使用一个非常消耗内存的应用程序 并且几乎优化了与内存分配 取消分配相关的所有相关路径 应用程序本身没有内存泄漏 没有句柄泄漏 没有任何其他类型的泄漏 据我所知并经过测试 我无法触及的第 3
  • 如果鼠标不在 VirtualTreeView (TVirtualStringTree) 上,如何禁用 MouseWheel

    如果 TVirtualStringTree 获得焦点 则默认情况下它会在鼠标滚轮上滚动 即使鼠标未超出控制范围 除非它位于另一个 TVirtualStringTree 上方 有没有一种快速而优雅的方法来禁用这种行为 我已经这样做了OnMou
  • Delphi 如何与 Active Directory 集成?

    我们需要使用 Delphi 7 验证 Microsoft Active Directory 上的用户 最好的方法是什么 我们可以有两种情况 用户输入其网络用户名和密码 其中用户名可能包括域 然后我们检查活动目录是否是有效的活动用户 或者我们
  • 创建FileStream时如何处理异常

    我有一个这样的函数 我想重构它 function Myfunction sUrl sFile String Boolean var GetData TFileStream begin Result False if the line bel
  • 如何更改 Delphi 2010 IDE 中编辑器选项卡的字体大小?

    有谁知道如何更改 Delphi 2010 IDE 中编辑器选项卡的字体大小 我的 1080p 22 显示器的字体太小 无法阅读 而且会导致眼睛疼痛 一些笔记 它不尊重系统的 DPI 设置 因此更改系统设置没有帮助 而且 我现在已经使用 14
  • 如何更改 Chromium 组件的默认背景颜色?

    I use TChromium http code google com p delphichromiumembedded 我分配AWebPageAsString这是一个带有灰色背景颜色的静态 HTML 页面 FBrowser TChrom
  • 错误:使用 Microsoft WebService.dll 通过 Delphi7 规范化 XML

    我正在使用 Delphi7 修改旧项目以添加使用证书和签名 经过一番搜索后我发现XML 规范化函数 https learn microsoft com en us previous versions dd815358 v vs 85 但我无
  • 如何从具有管理员权限的应用程序接收键盘输入到非管理员应用程序?

    我编写了一个应用程序 该应用程序具有覆盖类型的窗口 可以通过热键显示和隐藏该窗口 而另一个应用程序具有焦点 所述另一个应用程序是一个以管理员权限运行的 DirectX 游戏 我已经尝试了 3 种可能的解决方案 以便在其他应用程序中按下我的热
  • Delphi TImageList 位图更改

    我正在使用 Delphi XE2 Update 3 Update 4 与我们的一些第 3 方组件不兼容 因此我们尚未更新 我在我的应用程序中使用 TImageList 我注意到很多时候当它从源视图切换到表单视图 F12 时 突然之前未修改的
  • 如何在滚动框上创建缓慢的滚动效果?

    我喜欢在滚动框中平移图像后创建平滑的减慢滚动效果 就像平移地图一样谷歌地图 http maps google com 我不确定它是什么类型 但行为完全相同 当快速移动地图时 当您释放鼠标时它不会立即停止 而是开始减慢速度 有什么想法 组件
  • Indy 的 TIdHTTPProxyServer:如何过滤请求?

    我正在使用 TIdHTTPProxyServer 来实现一个简单的 HTTP 代理 但我现在想阻止一些与某些 URL 匹配的连接 哪个事件和 或组件最适合实现这一目标 Indy 文档并没有太多解释 Thanks 作为基本过滤器 您可以使用
  • Async InputQuery 不处理“取消”按钮

    我正在使用一个简单的调用TDialogServiceAsync InputQuery 使用单个输入 它只是忽略了Cancel按钮和窗口的X关闭按钮 But the Ok按钮工作正常 这是我的代码 uses FMX DialogService
  • 德尔福数据结构

    我可能需要在 Delphi 中做一个项目 并且是该领域的初学者 目前 我正在网上搜索资源 但由于资源站点太少而感到困惑 首先 你能给我一些好的网站 其中包含我迄今为止错过的 Delphi 资源吗 我也在 Delphi 中搜索数据结构 想知道
  • 如何仅使用 TADOQuery 组件将图像插入数据库

    我有一个简单的基本问题 我正在尝试使用将图像插入数据库Insert与其他列值的语句也使用TADOQuery成分 由于代码已经由某人编写 因此我想在此处放置一些虚拟示例代码 以供您澄清相应的步骤 请注意 这可以正常工作TQuery组件 因为我
  • 不断断点?如何去除它们?

    我下载了一个用Delphi 2009制作的项目 这也是我使用的 但是有一个断点我无法删除 如果我尝试删除它 它会在程序执行后再次执行 我在其他调试器中遇到了这样的事情 称为硬件断点 但这并不重要 如何删除断点 EDIT Article ht
  • 石和磅的格式正确吗?

    我有一个图表 用于显示重量 以英石和磅 lbs 为单位 该图表由记录中的数据填充 对于权重 数据类型为 Double 记录数据是在运行时编辑的 我需要知道一种正确格式化输入数据的方法 为了更好地理解 首先看一下这些示例值 它们表示为石和磅

随机推荐

  • 使用 Cypress 处理悬停在菜单上

    我最近偶然发现了 e2e 工具 赛普拉斯io 我目前正在为我合作的公司进行 POC 以对 React 应用程序进行 e2e 测试 就像现在大多数网络应用程序一样 它有一个悬停在菜单上的菜单 一个例子 URL Fmovies 我试图从鼠标悬停
  • 非贪婪正则表达式量词给出贪婪结果

    我有一个 net 正则表达式 正在使用 Windows Powershell 进行测试 输出如下 gt System Text RegularExpressions Regex Match aaa aaa bbb aaa bbb Group
  • 如何使用 Ember 动态地将新模板插入到 DOM 中?

    我有一个 Ember js 应用程序 在主模板中 我有一个帮助按钮 单击该按钮后应显示 CSS 工具提示 我的工具提示是一个单独的车把模板 我想做的是处理点击事件 将弹出窗口插入到 DOM 中并显示它 我不知道如何使用 Ember 将新模板
  • 将动态大小数组编组到结构中

    如何使用动态大小的数组定义结构 这样对吗 struct MyStruc public int len MarshalAs UnmanagedType LPArray SizeParamIndex 0 public int buf 假设您想要
  • 判断范围是否有数据

    以下代码从命名范围 Table24 创建一个图表 有时 该表没有有效数据 然后我希望数据集的范围为包含 0 的单元格 并填充没有数据的图表 这是 5 个图表中的第 4 个图表 使用调试 我确定这是每次运行时都会导致我的 Excel 文件崩溃
  • C++ 编译器如何区分二元运算符和模板的标记 >>

    我的疑问是关于 C 编译器的解析器 Clang 编译器如何处理运算符 gt gt 知道它何时是二元运算符以及何时关闭模板 例如 std vector
  • iOS Objective-C:在浮点数上使用模数从脚中获取“英寸”

    我正在尝试制作一个简单的 Objective C 高度转换器 输入是英尺的 浮点 变量 我想转换为 int 英尺和 浮点 英寸 float totalHeight 5 122222 float myFeet int totalHeight
  • 将 geom_smooth 添加到箱线图[重复]

    这个问题在这里已经有答案了 我正在尝试添加一个geom smooth 趋势是一些箱线图 但我没有正确获取图层 我怎样才能将这两者合并在一起 几何箱线图 ggplot test geom boxplot aes x factor year y
  • Django Heroku - ModuleNotFoundError:没有名为“django_heroku”的模块

    我正在 heroku 上部署一个网站 但遇到一些问题 我的项目叫做mysite project 我做了以下事情 1 创建一个Procfile包含 web gunicorn mysite project wsgi 在我的项目的根目录 与man
  • 如何检索在 Symfony 表单中配置为“mapped”=> false 的表单字段?

    如何检索配置的表单字段 mapped gt false并且不是 Symfony Form 中 ENTITY 表单的一部分 表单提交后 表单对象不包含配置为的字段 mapped gt false named 主复选框 表单生成器 class
  • 如何在键盘上方添加工具栏?

    我创建了一个UIToolBar以编程方式并添加了UITextField在上面 现在 当我单击另一个文本字段时 我需要该工具栏位于键盘上方 UIToolbar toolBar UIToolbar alloc initWithFrame CGR
  • iOS 7 应用程序的放大版本中状态栏不会消失

    我已经尝试了这里建议的一切 状态栏不会消失无济于事 我的 iPhone 版本的应用程序没有显示状态栏 但在我的 iPad 上 它运行我的 iPhone 版本的放大版本 有一个状态栏不会消失 如果有什么不同的话 我的应用程序的大部分应用程序都
  • Visual Studio 2008 文件夹浏览器对话框

    在 Visual Studio 2008 中 有一个文件夹浏览器对话框 如下所示 与文件打开对话框非常相似 有谁知道如何从代码中调用它 如果您使用 C 那么此解决方案适合您 这里提供源代码 http www lyquidity com de
  • 模糊地址匹配R

    是的 以前有人问过这个问题 但我找不到一个线程可以为这个问题提供简单 干净的答案 我有下面的示例数据 我有两列 col1 是当前地址 col2 是我被告知比当前地址 更好 的地址 我需要看看第二列比第一列 好 多少 大多数时候 第二个更好
  • 读取数据时删除行 D3

    假设我有一个示例文件sample csv row col value 1 1 2 1 2 3 1 3 NA 当读取 d3 中的数据时 您会执行以下操作 d3 csv sample csv function data data forEach
  • 我可以在 Xcode 上重新打开 .xcarchive 吗?

    是否可以在 Xcode 上重新打开 xcarchive 文件 我知道这并不常见 但我想打开一个与提交到 App Store 时完全相同的项目 我没有那个确切版本的备份 所以打开存档副本真是太棒了 在你问我为什么不从商店下载它之前 我必须说这
  • “OFFSET”附近的语法不正确。 “在实体框架核心中”的 FETCH 语句中选项 NEXT 的使用无效

    这是我的代码 var result dbContext Specialty OrderByDescending u gt u IdS Skip 20 Take 10 AsEnumerable Error OFFSET 附近的语法不正确 FE
  • C++ 友元函数被类函数隐藏?

    最小的例子 class A friend void swap A first A second void swap A other void call swap A other swap this other int main return
  • Android中的垂直滑动菜单

    安卓有垂直滑动菜单吗 我需要类似于 Google Plus 应用程序的滑动菜单的东西 但我也需要它能够从下到上垂直滑动 这种 UI 模式目前被称为侧边导航 并在此处进行了详细讨论 http www androiduipatterns com
  • 如何创建临时文件(0x100)以加速应用程序

    我见过Windows系统使用临时文件来提高某些任务的性能 当我查看这些文件时 它们被标记为 0x100 属性 我从 Microsoft 收到以下文本 通过使用 CreateFile 和 FILE ATTRIBUTE TEMPORARY 标志