问题标签 [movefileex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - MoveFileEx() 返回 ERROR_SHARING_VIOLATION
我正在开发一个可以对我们的主程序的模块进行实时更新的程序。
如果主 exe 正在运行,则需要
1)将其重命名为临时名称,例如:%productpath%\main.exe -> %productpath%\temp\temp.exe
::MoveFileEx(%productpath%\main.exe, %productpath%\temp\temp.exe, MOVEFILE_REPLACE_EXISTING)
---GetLastError()
返回ERROR_SHARING_VIOLATION
2)删除临时文件,直到重新启动
::MoveFileEx(%productpath%\temp\temp.exe, NULL, MOVEFILE_DELAY_UNTIL_REBOOT);
3)将新下载的exe复制到原始路径%productpath%\main.exe
我的问题是为什么它在第一步失败,因为exe正在运行而MoveFileEx()
返回?ERROR_SHARING_VIOLATION
我的更新程序具有管理员权限。
vba - 如何使用 VBA 打开文本文件并将它们移动到文件夹中?
我需要一个项目的帮助,在该项目中我必须打开一个文本文件列表,在其内容中找到一个模式,然后根据模式移动到其他文件夹。
例如,在一个文本文件列表中,我必须找出其中的哪些里面写有“blue”这个词,然后它们只将这些文件移动到另一个名为“Blue”的文件夹中。
我试图使用命令 FileSystemObject 来完成它,但我有点迷失了。
非常感谢提前!!
excel - 在 VBA 中重定位动态文件
我试图让用户选择一个文件并选择一个上传到另一个位置(如共享驱动器)。我正在使用名称功能,但我意识到我无法获取文件名并将其放入“toPath”,因为它取决于用户。以下是我完成的代码,请任何建议或建议都会有所帮助。
同时,我希望我的代码可以帮助正在尝试做同样事情的人。谢谢
选择要上传的文件:
要选择上传文件的上传路径:
unix - 使用 Win32 MoveFileEx() 为目录模拟 UNIX rename()
我想模拟一个特定的 UNIXrename()
函数来重命名目录。它的 MAN 页指定:
oldpath 可以指定一个目录。在这种情况下,newpath 必须不存在,或者必须指定一个空目录。
我想模拟最后一种情况:
newpath 存在并且为空。
所以我创建了目录foo_dir
并bar_dir
调用MoveFileEx()
了以重命名foo_dir
为bar_dir
. 这是没有错误管理的代码:
但MoveFileEx()
总是失败并出现错误 5(拒绝访问)。我尝试过使用其他标志MoveFileEx()
但没有成功。
bar_dir
如果它存在并且在调用之前为空,我必须手动删除MoveFileEx()
吗?还是有其他解决方案?
我还没试过ReplaceFile()
。
visual-c++ - 带有 MOVEFILE_REPLACE_EXISTING 标志的 MoveFileEx 失败,LastError = 183
我们有一个应用程序,它通过使用以下命令将配置文件复制到子文件夹(请参阅下面的日志文件条目)来备份配置文件:-
这似乎在大多数系统上按预期工作,但在两个系统上,我们在日志文件中收到以下警告:-
2018 年 6 月 11 日 10:58:05.437 W. 常见警告 MoveFile 在 C:\Program Files\Configuration\Stores.xml 到 C:\Program Files\Configuration\Backup\Stores.xml 上失败 LastError=183
Lasterror =183
意思是“ ERROR_ALREADY_EXISTS
”
这很奇怪,因为MOVEFILE_REPLACE_EXISTING
它专门用于在目标文件存在时启用此命令。
这发生在Win7 x86
机器上。
在以前的版本中MoveFile
使用了代码,但DeleteFile
在确保目标文件不存在之前立即调用。当代码回滚到这个版本时,它就可以工作了。
有什么建议么?
visual-studio-2013 - VS2013项目设置导致文件移动访问被拒绝(也许?)
我在使用 Windows API 将文件从一个位置移动到另一个位置的应用程序时遇到问题。问题不在于代码,它似乎是项目设置,但我不知道要查找什么或在哪里。
我创建了一个项目,编写了大量代码,然后开始实现移动位。在测试中,我不断收到“拒绝访问”的结果。经过大量挠头后,我创建了一个新项目来对移动代码进行单元测试。它工作得很好。我将已知的工作代码批发复制到原始项目中,删除其他所有内容并重新运行。拒绝访问。因此,两个项目之间的唯一区别在于项目设置中的内容。我还检查了资源管理器中两个 exe 文件的安全设置。两者都与我作为所有者相同。
请任何人都可以建议我需要在设置中检查/更改什么?我不想费力尝试手动比较这两个项目设置。
非常感谢。
对于任何感兴趣的人,我正在运行的代码是:
c++ - Windows C++:文件夹移动访问被拒绝错误
下面的代码是我项目中的一个片段,其中包括:
- 从指定的本地文件夹(上传文件夹)获取文件夹内容的集合
- 将包含的文件复制到远程网络文件夹。如果有子文件夹,则复制其文件,但不保留文件夹结构。
- 将原始本地文件夹移动到不同的本地位置(存档文件夹)
我遇到的麻烦是在移动操作中。如果要移动的文件夹包含一个或多个子文件夹,则移动将失败并显示“拒绝访问”错误。我已将原因缩小到先前的函数调用,该函数调用生成要复制的文件列表。我在下面的代码中突出显示了这个调用。它在 main 中(参见第一次调用 getFolderItemsRecursive())。我不明白为什么这个递归函数会产生问题。就好像通过收集信息,它以某种方式将某些东西标记为“正在使用”。请注意,我实际上并没有复制文件,因为我已经注释掉了这些行。所以不是这样。
要运行下面的代码,您需要在某处创建几个文件夹并将位置输入到代码中。代码假定 c:_UploadTests 和 c:_archivedtests。要重现该问题,请在 _UploadTest 中创建至少一个带有自己的子文件夹的子文件夹。例如 c:_UploadTests\Foo\Bar\
delphi - 重新启动后 MoveFileEx 不删除文件
有人可以解释为什么MoveFileEx
在以下代码中重新启动后不删除文件?谢谢。