- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在更新一个 c++ 例程来移动在 visual studio express 2008/2010 中编写的文件。我现在正在运行 VS Express 2012
显然编译器有变化,因为字符串函数必须升级到 strcpy_s 等。没问题。这是一个控制台应用程序。我从未将我的 C++ 知识从 C++ 扩展到 C# 等,因为我只需要能够编写小型实用程序来在命令行上执行操作。我仍然能够编写稍微复杂的实用程序。
我的问题是 movefile() 函数总是无法移动,出现错误 2 或 123。我在 C:\users\alan\downloads 文件夹中工作,所以我知道我有权限。我知道文件在那里。一小段代码是:
char source=".\\test.txt"; // edited for clarity.
char dest=".\\test.txt1";
printf("\nMove\n %s\n to %s\n",source,dest); // just to see what is going on
MoveFile((LPCWSTR) source, (LPCWSTR) dest);
printf("Error %u\n",GetLastError());
输出是:移动 .\test.txt 到 .\test.txt1错误2
我的所有字符串都是简单的 char 字符串,即使在阅读之后,我也不确定 LPCWSTR 的类型 def' 是什么以及这是否是罪魁祸首。所以为了让它编译,我简单地输入了我的字符串。它编译。但它仍然不会移动文件。
代码在开发源和目标变量时更为复杂,但我已将其简化为简单的“只需将 1 附加到文件名”的情况,看看我是否可以简单地重命名它。我认为 C:\xxx\yyy\zzz\test.txt 在某种程度上可能是错误的,但这个想法在上面的测试中失败了。无论有没有 .\相同的问题,我都做过。除了制作自己的 fileopen 读/写二进制函数来替换 movefile() 之外,我的想法已经用完了。我真的反对,但如果必须的话,我会的。
编辑:我从使用 FullPathName 的原始代码粘贴了 printf,我已经更正了代码段。
最佳答案
您将参数转换为 LPCWSTR
的事实表明您正在使用定义的 UNICODE
编译程序,这意味着您正在调用 MoveFileW
并且编译器警告参数类型不匹配。
插入类型转换并不能解决这个问题。你是在告诉编译器停止提示,但你实际上并没有解决问题(底层数据仍然是错误的)。
实际解决方案:
WCHAR
作为 MoveFileW
期望(或 TCHAR
/LPTSTR
和 _T
宏)。MoveFileA
UNICODE
的情况下编译。关于c++ - movefile() 失败错误 2 或 123,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26700618/
从 MSDN 我了解到,当您在没有 FILE_FLAG_NO_BUFFERING 的情况下调用 WinApi CreateFile 时,WriteFile 会将数据写入系统缓存。它不直接写入物理磁盘。
我尝试了多种方法来复制/克隆文件并将其粘贴到另一个目录中,这是一种独特的方法,只给出了一个错误 procedure TDelForm.moveFileClick(Sender: TObject); b
当我在 Windows 7 系统上运行以下简单的 C 程序时 #include #include int main() { int i; CreateDirectory("test
Windows/C++ 正在寻找有关如何在将文件移动到新文件夹后重置文件的安全属性的一些建议。 我们创建文件(以及从服务器下载)的标准方法是在一个临时文件夹中创建文件,然后随着文件流下来,附加文件。下
MoveFile 方法 将一个或多个文件从某位置移动到另一位置。 object.MoveFile source, destination 参数 object 必选项。应为 FileSys
因此,我尝试使用 cin 和 MoveFile() 移动用户指定的文件。但问题是 MoveFile() 参数采用 LPCTSTR 变量,但 cin 不采用这些变量类型,任何人都可以帮助我从 char
FileUtils.moveFile 在磁盘已满情况下移动失败时并不总是抛出 IOException。新文件已创建,但大小为 0。下面是代码 void function1 (String fileP
我正在尝试使用经典 asp fso 删除/移动文件,但出现此错误: Microsoft VBScript runtime error '800a0046' Permission denied 该文件位
描述: 下面的代码是我能写的导致失败的最简单的代码。我也尝试过:将 CreateFile 和 MoveFile 放在不同的 using 语句中,将它们放在不同的 xaml 页面中,将文件移动到具有新文
我正在更新一个 c++ 例程来移动在 visual studio express 2008/2010 中编写的文件。我现在正在运行 VS Express 2012 显然编译器有变化,因为字符串函数必须
我正在使用函数 Movefile()(在 C 中)。我可以看到文件从源文件夹移动到目标文件夹(意味着 MoveFile 成功)但是当我执行 GetLastError() 时,我得到错误号。 2 (ER
我需要一个例子,可以让我传递一个参数 例如执行 delete.exe/killme.txt 所以它会在重启后使用“MoveFile”删除killme.txt。 虽然请不要使用 MS 预编译版本,因为它
这里有一个简单的C程序来说明: #include #include int main(int argc, char *argv[]) { //MoveFile(argv[0], "dst.
我正在尝试从 "X" 重命名文件至"XY"在同一个文件夹中。我曾尝试使用文件系统对象和 Name X as Y 函数,但两者都不起作用。我确实安装了 Microsoft Scripting Runti
我编写了一个 vbscript,用于将文件从源目录移动到目标目录。脚本目前的工作方式是我有一个被读入的映射文件(将 id 映射到文件夹类型)。每个被移动的文件都以 id 开头,目的地将基于 id 映射
我正在处理一个非常令人沮丧的 C++ 问题。我需要使用 MoveFile 函数,但这失败了。现在我正在像这样使用 CopyFile: partialresult = L"D:\\CppWork\\te
我在将目录移动到新位置时遇到问题,特别是我使用 CreateDirectory 创建的目录。这是代码: if (FALSE == CreateDirectory(strDestination, NUL
wstring path = L"C:\\Users\\oneworduser\\Desktop\\trash"; LPCWSTR origin = (path + L"\\" + f
我正在将目录 A\B 复制到目录 A\C。 由于显而易见的原因,目录 A\B 已经存在,而目录 A\C 尚不存在。 当使用 copyFile 函数将目录 A\B 复制到 A\C 时,出现“拒绝访问”错
好的,我有一个名为的文件 ANIME~1.MKV~FNH47B97 ANIME~1.MKV 它是完整的文件名。它是由用户命名的。我想把第一个重命名为ANIME~1.JPG。从操作系统的角度来看,它们似
我是一名优秀的程序员,十分优秀!