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

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

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

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

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

3 回答

?
守候你守候我

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

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

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


查看完整回答
反對(duì) 回復(fù) 2019-10-29
?
守著星空守著你

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

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


不幸的是,這對(duì)于舊版本的Windows沒(méi)有幫助。


查看完整回答
反對(duì) 回復(fù) 2019-10-29
?
12345678_0001

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

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


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


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


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


查看完整回答
反對(duì) 回復(fù) 2019-10-29
  • 3 回答
  • 0 關(guān)注
  • 894 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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