我用名爲「Data.exe」的c可執行文件刻錄了25張cd-rom。所有的CD都有相同的CD名稱和相同的可執行文件名稱,但具有不同的可執行文件版本下面的代碼:來自不同cds的不同可執行文件總是運行相同的代碼
CD0
system("C:\\_folder\\_folder.exe 0");
CD1
system("C:\\_folder\\_folder.exe 1");
.....等等.....
CD24
system("C:\\_folder\\_folder.exe 24");
的 「C:\ _文件夾\ _folder.exe」 代碼爲
printf(argv[1]);
只是爲了檢查CDS被正確燒燬。 (後面這一切的核心思想是讓CDS識別自己和移動的真正邏輯的託管PC,使CDS可重複使用我的需求。)
的問題是,當我隨意插入CD插入電腦,往往是先前插入的CD的可執行文件「卡住」,並顯示自己,而不是新的。
例如,如果我插入CD16我打印16,然後我插入CD20,我仍然從CD20可執行文件打印16,CD20可執行文件的最後編輯日期仍然是從CD16。重新啓動後,一切都會「重置」,插入的第一張光盤將成爲新的「卡住」光盤。同樣的問題適用於所有其他的CD。
這似乎是一個微不足道的任務,我肯定錯過了一些東西。我的錯誤在哪裏?
由於您從CD運行exe文件,文件被緩存在臨時文件中,並且當您再次調用同一文件而不是重新緩存時,它只使用臨時文件。在插入下一張cd之前清除%temp%中的所有內容 –
剛剛嘗試過,但沒有奏效:插入了cd,運行exe,刪除了%temp%內容,插入了不同的cd,運行了exe並重新獲得了相同的id。 –
@SurajS,不,Windows不這樣做。如果可執行文件想從臨時文件夾運行,則必須自行完成。這看起來更像是文件系統緩存。 CD可能需要有不同的卷名。 –