直到現在,每當我想而不覆蓋現有的創建一個文件,我已經做了這樣的事情:如何在不覆蓋現有文件的情況下創建線程文件?
if not FileExists(filename) then
stream := TFileStream.Create(filename, fmCreate);
但是,這不是線程安全的。所以現在我正在尋找一個線程安全版本。
也許我可以結合一些模式,使TFileStream.Create(filename, fmCreate +fm???);
失敗,如果文件存在?
我需要這個來與舊的DOS程序進行目錄鎖的通信。但DOS程序不保存打開的文件。 :-(
執行DOS程序有鎖定文件也?使Delphi應用程序線程安全不會讓DOS程序線程安全的。而且我們不是在談論線程,但有關進程在這裏。你確定你正在處理DOS程序,而不是Win32命令行程序嗎?爲了確保我們給你一個可行的解決方案,我們需要更多地瞭解你的ar的「DOS程序」部分結構:他們是如何工作的?哪個應用正在鎖定目錄?你使用哪種狀態機進行鎖定? – 2011-05-30 11:51:24
你說的這個DOS是什麼?你在Windows 98上運行嗎? – 2011-05-30 16:01:31
@David,AFAIK你可以在所有32位版本的Windows上運行DOS程序,包括Windows 7 32位;無需Windows 98! – 2011-05-30 19:06:25