簡體   English   中英

用於在C中重命名文件的Win32 API

[英]Win32 API for rename a file in C

如果是源目錄和目標目錄,MoveFile實際上會將源文件的副本復制到目標文件中,這意味着我最終會看到兩個文件。

這是重命名的最佳方式嗎?

MoveFile功能確實是你想要的。 從文檔:

MoveFile函數將在同一目錄或目錄中移動(重命名)文件或目錄(包括其子項)。

如果源位置和目標位置都在同一卷上,則執行原子重命名操作。 如果它們位於不同的卷上,則會執行復制/刪除操作(這是您可以做的最好的操作)。

嘗試

#include <stdio.h>

int Result = rename( oldname , newname );

if (Result)
   // "Error occurred." );
else
   // "File was successfully renamed!";

你的代碼是什么樣的? 我有這個:

if(MoveFile(_T("c:\\hold\\source"),_T("c:\\hold\\dest")))
{
    printf("succeeded\n");
}else
{
    printf("Error %d\n",GetLastError());
}

並且它不會留下來源。

您可能希望嘗試使用MoveFileEx() API而不指定MOVEFILE_COPY_ALLOWED以查看是否提供了您正在查找的行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM