【问题标题】:Update free space amount displayed in Windows Explorer更新 Windows 资源管理器中显示的可用空间量
【发布时间】:2012-12-18 09:31:33
【问题描述】:

如何更新 Windows 资源管理器中显示的驱动器可用空间量?

假设打开了 Windows 资源管理器,并以编程方式删除了一些文件。 Windows 资源管理器不会刷新以显示新的可用空间。

所以,我尝试像这样使用SHChangeNotify(Delphi 代码):

ws := 'C:\';
SHChangeNotify (SHCNE_FREESPACE, SHCNF_PATH, PWideChar(ws), nil); 

但它不会更新“Windows 资源管理器”中报告的值。

请帮忙。

【问题讨论】:

  • 如何删除文件? DeleteFile,还是移到回收站?

标签: windows delphi delphi-7 windows-shell


【解决方案1】:

如果您使用的是 Delphi 7,那么 SHCNF_PATH 将映射到 ANSI 版本 SHCNF_PATHA。在这种情况下传递PWideChar 是错误的。像这样写:

var
  Drive: string;
....
Drive := 'C:\';
SHChangeNotify(SHCNE_FREESPACE, SHCNF_PATH, PChar(Drive), nil);

或者,如果您更喜欢使用 Unicode 版本,那么您需要使用 SHCNF_PATHW

var
  Drive: WideString;
....
Drive := 'C:\';
SHChangeNotify(SHCNE_FREESPACE, SHCNF_PATHW, PWideChar(Drive), nil);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-22
    • 1970-01-01
    • 1970-01-01
    • 2019-11-19
    • 2021-07-15
    • 2022-01-11
    • 2011-01-30
    • 2013-03-12
    相关资源
    最近更新 更多