簡體   English   中英

在Windows上以非管理員身份檢查C中的上次文件修改時間

[英]Checking last file modified time in C on Windows as a non-admin

我正在編寫一個C / C ++應用程序,在這里我需要比較兩個文件的最后修改時間,一個在安裝目錄中(例如,由SYSTEM擁有,並且具有SYSTEM / admin的wrx權限,沒有其他權限),而一個在用戶可寫狀態空間。 我嘗試使用C函數stat(filename,&st)來檢查上次修改時間,但是當程序以管理員身份運行時,它僅在安裝目錄中找到了文件的正確時間。 據我了解,stat需要在目錄中具有執行權限才能運行。

因此,在C / C ++中,非管理員如何確定安裝目錄中文件的最后修改時間?

事實證明stat實際上是有效的,但實際上它不是在查看安裝目錄中的文件,而是在查看目錄中的文件。

C:\\ Users \\\\ AppData \\ Local \\ VirtualStore \\

這是一個較舊的文件。 當程序以管理員身份運行時,它會在實際目錄中查找。 我可以通過刪除VirtualStore中的文件來解決我的問題。

另一個解決方法是啟動系統進程以在命令行上運行stat。 我可以通過stat來直接訪問該文件,而在源代碼中使用stat導致Windows重定向到該文件的VirtualStore版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM