gpt4 book ai didi

windows - 确定是否可以在 windows 上删除文件

转载 作者:IT王子 更新时间:2023-10-29 01:12:15 27 4
gpt4 key购买 nike

在Windows平台使用go语言有没有什么合理的方法可以判断一个文件是否可以成功删除?我已经尝试使用调用 os.OpenFile 的各种标志,包括使用 os.O_TRUNC 所有调用都成功,但在使用文件时删除将失败。我也尝试过使用特定于 Windows 的锁定机制(即 kern.NewProc("LockFileEx") 等),这些似乎成功地获得了独占锁,但 os.Remove(解锁后)将失败。我意识到如果在测试和删除调用之间如果另一个进程打开文件删除仍然会失败但这里不是这种情况,通过我的测试我知道文件正在使用但我找不到测试来告诉我认为(除了实际调用 os.Remove)

最佳答案

在 Windows 上,Go os.Remove函数使用 Windows DeleteFile功能。您必须满足某些条件才能删除 Windows 文件。例如,“DeleteFile 函数将文件标记为在关闭时删除。因此,直到文件的最后一个句柄关闭后才会删除文件”,“如果应用程序试图删除具有其他文件的文件,DeleteFile 函数将失败为普通 I/O 处理打开”,等等。

关于windows - 确定是否可以在 windows 上删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49163497/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com