不要儲存短檔名在登錄檔 檔案 和資料庫中

2021-04-06 16:57:24 字數 797 閱讀 9625

今天在msdn看到乙個好文章,就把它翻譯出來的

不要儲存短檔名在登錄檔、檔案、和資料庫中

長檔名和列印名字是windows nt和windows 95中引入的。當乙個應用程式使用長檔名去建立乙個檔案或乙個目錄,系統自動生成一相應的別名,這個檔案或目錄別名是採用標準的8.3格式。(譯者注,主要是為了相容dos和其它一些應用程式)

乙個應用程式應該必須從不依靠自動生成的短檔案,應用程式不能把這個短檔名記錄到登錄檔、檔案、和資料庫中,並且為了以後的使用。相反,應用程式應該記錄長檔名並且要加上引號到登錄檔、檔案、和資料庫中。

舉個例子,假如乙個應用程式寫了兩個檔案,分別是"this is a long name1.txt"和"this is a long name also.text"。系統為乙個檔案生成的短檔案名叫"thisis~1.txt",為第二個檔案生成的短檔案名叫"thisis~2.txt"。應用程式把"thisis~1.txt"儲存到登錄檔中並且把這兩個檔案刪除。假如使用者後來從備份的介質中得到了這兩個檔案,並且在拷貝這個兩個檔案到原路徑的時候把順序同原來的相反,那麼系統就會為"this is a long name also.txt"生成"thisis~1.txt"短檔案,而"thisis~2.txt"短檔案把指向的是"this is a long name1.txt"檔案。假如使用者從先前的登錄檔中讀取已經儲存的檔名,事實上它得到了乙個錯誤的檔案。這個問題的解決方法就在用帶引號的長檔名儲存到登錄檔中。

english version:do not store short file names in the registry, files, or databases

檔案讀寫和登錄檔讀寫

檔案讀寫和登錄檔讀寫 新增如下選單專案 響應 一 檔案讀寫 void cfileview onfilewrite void cfileview onfileread 二 登錄檔讀寫 按鈕響應 void cfileview onregwrite void cfileview onregread 三 初...

Qt讀寫登錄檔和ini檔案

需要 include 只舉幾個簡單的例子 1 用qsettings寫登錄檔 1.qsettings reg new qsettings hkey current user software yinhaifan 2.qsettings nativeformat 3.reg setvalue regis...

QSettings寫登錄檔和INI檔案 開機自啟動

qsettings通過寫登錄檔和ini檔案提供了持久的跨平台應用程式的配置。一 讀寫登錄檔 1 通過指定公司名稱 產品名稱來構造qsettings物件 qsettings settings new qsettings jtv zhangzc settings setvalue size qsize ...