第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

在Windows上可以重命名(覆蓋)原子文件嗎?

在Windows上可以重命名(覆蓋)原子文件嗎?

在POSIX系統(tǒng)上,rename(2)提供了原子重命名操作,包括覆蓋目標(biāo)文件(如果存在)以及是否允許權(quán)限。有沒有辦法在Windows上獲得相同的語義?我知道Vista和Server 2008上的MoveFileTransacted(),但是我需要它來支持Win2k及更高版本。這里的關(guān)鍵詞是原子的 ……解決方案一定不能以使操作處于不一致狀態(tài)的任何方式失敗。我見過很多人說這在win32上是不可能的,但是我問你,真的嗎?如果可能,請?zhí)峁┛煽康囊谩?
查看完整描述

3 回答

?
四季花海

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個(gè)贊

Win32不保證原子文件元數(shù)據(jù)操作。我會提供引用,但沒有引用-沒有書面或書面保證的事實(shí)就足夠了。

您將必須編寫自己的例程來支持此操作。不幸的是,但是您不能指望win32提供這種級別的服務(wù)-根本不是為它設(shè)計(jì)的。


查看完整回答
反對 回復(fù) 2019-12-14
?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

在Windows Vista和Windows Server 2008中,已添加了原子移動功能-MoveFileTransacted()


不幸的是,這對于舊版本的Windows沒有幫助。


查看完整回答
反對 回復(fù) 2019-12-14
?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊

在Windows上,您仍然可以進(jìn)行rename()調(diào)用,盡管我想如果不知道您使用的文件系統(tǒng)就無法做出您想要的保證-例如,如果您使用的是FAT,則無法保證。


但是,可以使用MoveFileEx并使用MOVEFILE_REPLACE_EXISTING和MOVEFILE_WRITE_THROUGH選項(xiàng)。后者在MSDN中具有以下描述:


設(shè)置此值可確保在函數(shù)返回之前將作為復(fù)制和刪除操作執(zhí)行的移動刷新到磁盤。刷新發(fā)生在復(fù)制操作結(jié)束時(shí)。


我知道這不一定與重命名操作相同,但是我認(rèn)為這可能是您獲得的最佳保證-如果這樣做是為了移動文件,則應(yīng)該進(jìn)行更簡單的重命名。



查看完整回答
反對 回復(fù) 2019-12-14
  • 3 回答
  • 0 關(guān)注
  • 889 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號