SHFILEOPSTRUCT

Original link: http://winapi.freetechsecrets.com/win32/WIN32SHFILEOPSTRUCT.htm

Reference linke: SHFileOperation方法拷贝文件

Contains information that the SHFileOperation function uses to perform file operations.

typedef struct _SHFILEOPSTRUCT { // shfos

HWND hwnd;

UINT wFunc;

LPCSTR pFrom;

LPCSTR pTo;

FILEOP_FLAGS fFlags;

BOOL fAnyOperationsAborted;

LPVOID hNameMappings;

LPCSTR lpszProgressTitle;

} SHFILEOPSTRUCT, FAR *LPSHFILEOPSTRUCT;

Members

hwnd

Handle of the dialog box to use to display information about the status of the operation.

wFunc

Operation to perform. This member can be one of the following values:

FO_COPY

Copies the files specified by pFrom to the location specified by pTo.

FO_DELETE

Deletes the files specified by pFrom (pTo is ignored).

FO_MOVE

Moves the files specified by pFrom to the location specified by pTo.

FO_RENAME

Renames the files specified by pFrom.

pFrom

Pointer to a buffer that specifies one or more source file names. Multiple names must be null-separated. The list of names must be double null-terminated.

pTo

Pointer to a buffer that contains the name of the destination file or directory. The buffer can contain mutiple destination file names if the fFlags member specifies FOF_MULTIDESTFILES. Multiple names must be null-separated. The list of names must be double null-terminated.

fFlags

Flags that control the file operation. This member can be a combination of the following values:

FOF_ALLOWUNDO

Preserves undo information, if possible.

FOF_CONFIRMMOUSE

Not implemented.

FOF_FILESONLY

Performs the operation only on files if a wildcard filename (*.*) is specified.

FOF_MULTIDESTFILES

Indicates that the pTo member specifies multiple destination files (one for each source file) rather than one directory where all source files are to be deposited.

FOF_NOCONFIRMATION

Responds with "yes to all" for any dialog box that is displayed.

FOF_NOCONFIRMMKDIR

Does not confirm the creation of a new directory if the operation requires one to be created.

FOF_RENAMEONCOLLISION

Gives the file being operated on a new name (such as "Copy #1 of...") in a move, copy, or rename operation if a file of the target name already exists.

FOF_SILENT

Does not display a progress dialog box.

FOF_SIMPLEPROGRESS

Displays a progress dialog box, but does not show the filenames.

FOF_WANTMAPPINGHANDLE

Fills in the hNameMappings member. The handle must be freed by using the SHFreeNameMappings function.

fAnyOperationsAborted

Value that receives TRUE if the user aborted any file operations before they were completed or FALSE otherwise.

hNameMappings

Handle of a filename mapping object that contains an array of SHNAMEMAPPING structures. Each structure contains the old and new path names for each file that was moved, copied, or renamed. This member is used only if fFlags includes FOF_WANTMAPPINGHANDLE.

lpszProgressTitle

Pointer to a string to use as the title for a progress dialog box. This member is used only if fFlags includes FOF_SIMPLEPROGRESS.

Remarks

If pFrom or pTo are unqualified names, the current directories are taken from the global current drive and directory settings as managed by the GetCurrentDirectory and SetCurrentDirectory functions.

See Also

GetCurrentDirectorySetCurrentDirectorySHFileOperationSHFreeNameMappingsSHNAMEMAPPING

__________________________________________________________________________________________

Example:

Copy a file to a specific path and rename it.

    TCHAR* chFrom =_T("C:\\TEST\\A\\gg.txt");
TCHAR* chTo=_T("C:\\TEST\\B\\gg.txt");
TCHAR* chNewName=_T("C:\\TEST\\B\\new.txt"); SHFILEOPSTRUCT shFileOp;
ZeroMemory(&shFileOp, sizeof(SHFILEOPSTRUCT)); shFileOp.wFunc=FO_COPY;
shFileOp.pFrom=chFrom+'\0';
shFileOp.pTo=chTo+'\0';
shFileOp.fFlags=FOF_NOCONFIRMATION|FOF_SILENT; DWORD dwCopyValue= SHFileOperation (&shFileOp);
//char buffer[32];
//ltoa((long)dwCopyValue, buffer, 10); char procID[];
sprintf(procID, "%d",dwCopyValue); if(dwCopyValue!=)
{   CString strMessage;

         strMessage.Format(_T("The copy operation failed.\n The error code of SHFileOperation is %d"), dwCopyValue);
         MessageBox(NULL, strMessage , _T("Alert"), MB_OK);

return dwCopyValue;
} shFileOp.wFunc=FO_RENAME+'\0';
shFileOp.pFrom=chTo+'\0';
shFileOp.pTo=chNewName+'\0'; DWORD dwRenameValue= SHFileOperation (&shFileOp);
if(dwRenameValue!=)
{
MessageBox(NULL, _T("The rename operation failed, error code is ! "+dwRenameValue), _T("Alert"), MB_OK);
return dwRenameValue;
}

Possible error code:

Go to this link System Error Codes to see what each code means.

1) SHFileOperation returns 124

124 means:

ERROR_INVALID_LEVEL

124 (0x7C)

The system call level is not correct.

DE_INVALIDFILES       

0x7C

The path in the source or destination or both was invalid.

Make sure the source or destination path is valid.

2) SHFileOperation returns 2

ERROR_FILE_NOT_FOUND

2 (0x2)

The system cannot find the file specified.

Make sure the file being operated exists.

File Operation using SHFileOperation的更多相关文章

  1. mysql数据库报错:InnoDB: Operating system error number 13 in a file operation

    环境:centos6.5 x86_64 启动mysql发现日志报错(日志路径可以查看/etc/my.cnf的配置) 160722 10:34:08 [Note] Found 42570716 of 4 ...

  2. InnoDB: Operating system error number 87 in a file operation. 错误87的解决方法

    InnoDB: Operating system error number 87 in a file operation. 错误87的解决方法 140628  8:10:48 [Note] Plugi ...

  3. Python:文件操作技巧(File operation)(转)

    Python:文件操作技巧(File operation) 读写文件 # ! /usr/bin/python #  -*- coding: utf8 -*- spath = " D:/dow ...

  4. Adobe ZXPInstaller 报错 Installation failed because of a file operation error.

    1. Drag a ZXP file or click here to select a file. 拖放一个 zxp 文件或点击打开选择一个 zxp 文件来安装: 2. Installation f ...

  5. Python & file operation mode

    Python & file operation mode create/read/write/append mode https://docs.python.org/3/library/fun ...

  6. Mac OS X系统下,svn: Can't remove file Operation not permitted.解决方案

    当你的svn出现类似以下错误时,提示Operation not permitted之类的问题,说明项目下 .svn文件夹内的文件权限有问题. 一般是由于windows和mac操作系统同时操作同个svn ...

  7. PythonStudy——文件操作 File operation

    # 文件:就是硬盘的一块存储空间 # 1.使用文件的三步骤: # 打开文件- 得到文件对象:找到数据存放在硬盘的位置,让操作系统持有该空间,具有操作权# 硬盘空间 被 操作系统持有# 文件对象f 被 ...

  8. file operation note

    从HLE回来,大家拍了2499张照片,分放在N个文件夹下,下面的python将下层目录中文件移动到上层 import os,shutil dst=os.getcwd()+os.sep for path ...

  9. python file operation

    file.open(name[,mode[,buffering]]) 模式的类型有: r 默认只读 w     以写方式打开,如果文件不存在则会先创建,如果文件存在则先把文件内容清空(truncate ...

随机推荐

  1. C# Winform 支持Hex与ASCII输入和切换的文本框

    最近一直在做一个支持串口,TCP,UDP通讯调试的一体化工具(也就是C#串口调试工具 v2.0的第三版),其中涉及到16进制数据和ASCII码的输入,所以继承了TextBox的基础上,写了这个支持He ...

  2. 给postfix设置黑名单

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  3. Ubuntu下非常给力的下载工具

    Windows下的下载工具--迅雷,之所以下载速度快,乃是它能搜索资源.为己所用,而不是仅仅从原始地址这单一资源处下载. Ubuntu下也有类似的工具,那就是aira2. aira2是一个命令行下载工 ...

  4. Lync边缘服务器配置

    以下步骤均使用Lync管理员权限即可完成 1.在前端下载并编辑拓扑,新建边缘池 如果边缘池中只有一台服务器,则池名称与服务器名称相同,如下: 如果需要删除边缘池,则需要先取消关联,如下: 2.发布拓扑 ...

  5. Lotus分析

    一 Lotus的任务 Lotus是一个消息通知服务,topic和subscription是多对多的关系.后面我加了一个发送自定义邮件和自定义短信的功能. 产品里面有个监控报警和通知列表.监控报警里创建 ...

  6. SQL 查询横表变竖表

    SQL 查询横表变竖表   /*普通行列转换 假设有张学生成绩表(tb)如下:Name Subject Result张三 语文 74张三 数学 83张三 物理 93李四 语文 74李四 数学 84李四 ...

  7. PHP函数ip2long转换IP时数值太大产生负数的解决办法

    有两种办法: 1. bindec( decbin($long))  利用bindec和decbin两个函数转换一次就没有问题了 我一直在用上面的方法,但是在升级到PHP7以后就不起作用了(因为最近只进 ...

  8. css3 字体旋转

    <style> #mycon { font-weight: bold; font-size: 150px; transform: rotateX(10deg); -webkit-trans ...

  9. MySQL Cluster测试过程中的错误汇总--ERROR 1296 (HY000)等等

    参考资料: http://dev.mysql.com/doc/refman/5.1/en/mysql-cluster-privilege-distribution.html http://www.cl ...

  10. android131 360 03 输入密码

    package com.itheima52.mobilesafe.activity; import android.app.Activity; import android.app.AlertDial ...