2012-12-18 4 views
1

드라이브의 Windows 탐색기에 표시된 여유 공간을 업데이트하는 방법은 무엇입니까?Windows 탐색기에 표시된 여유 공간을 업데이트하십시오.

Windows 탐색기가 열려 있고 일부 파일이 프로그래밍 방식으로 삭제된다고 가정합니다. Windows 탐색기를 새로 고쳐 사용 가능한 새 공간을 표시하지 않습니다.

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

을하지만, "Windows 탐색기"에보고 된 값을 업데이트하지 않습니다

그래서,이 (델파이 코드)처럼 SHChangeNotify을 사용했습니다.

도와주세요.

+0

파일을 어떻게 삭제 하시겠습니까? 'DeleteFile'을 사용하거나 휴지통으로 옮깁니 까? –

+0

Deletefile – user382591

답변

5

델파이 7을 사용하는 경우 SHCNF_PATH은 ANSI 버전 SHCNF_PATHA에 매핑됩니다. 어떤 경우에는 PWideChar을 전달하는 것이 잘못되었습니다. 당신은 유니 코드 버전을 사용하고 싶은 경우에, 당신은 SHCNF_PATHW를 사용해야

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

을 또는이처럼 쓰기.

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

+1을 사용합니다. 아주 좋은 캐치! –

+0

그것은 매력처럼 작동합니다! (늦어서 반갑습니다.) David. – user382591

관련 문제