更新Windows资源pipe理器中显示的可用空间量

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

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

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

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

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

请帮忙。

Solutions Collecting From Web of "更新Windows资源pipe理器中显示的可用空间量"

如果您使用的是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);