我寫了一個程序,它創建了幾個sqlite3數據庫臨時文件。在開發中,我只是將它們存儲在與src包相同的文件夾中的一個文件夾中。我忽略了這樣一個事實,即當代碼編譯並從Program Files運行時,您需要管理員權限。 (我知道Program Files中的臨時文件也是不好的做法)編譯Python寫入Program Files
問題是:沒有問題。我沒有收到IOError: [Errno 13] Permission denied:
或任何形式的警告。此外,如果我去的應該是臨時文件的文件夾,沒有任何。
如果我添加喜歡
print os.path.exists(r'C:\Program Files (x86)\ProgramName\temp\filename.db')
或
print os.listdir(r'C:\Program Files (x86)\ProgramName\temp')
到我的程序行,則說明該文件是有,但並不在資源管理器,CMD或閒置的存在。他們做,然而,出現在cygwin。
我已經顯示隱藏的文件/文件夾,它們不顯示。
如果我使用資源管理器複製臨時文件夾,文件不會標記。如果我使用cygwin複製文件夾,他們可以。它們也對探險家可見。
有沒有其他人經歷過這個或知道發生了什麼?
'C:\ Program Files(x86)\ ProgramName \ temp \ filename.db'是一個有效的Linux文件名。我不記得Windows能否真正「看到」這些文件,但是你能否確認不只有一個名爲'C:\ Program Files(x86)\ ProgramName \ temp \ filename.db'的本地文件? – Blender
IIRC,Windows實際上把你的文件放在其他一些我不記得的地方,如果一個程序試圖寫入程序文件的安裝目錄,它們假裝它們進入Program Files。我遇到過一次類似的問題。不幸的是,這是關於我的知識程度。 – user2357112
你用來創建文件的代碼是什麼? – MattDMo