SHFileOperation()函数主要对文件夹的四种操作:复制,删除,移动,重命名

//SHFileOperations的操作,pathFrom接受变量传值时老是出错,手工在字符串后面加2个‘\0‘,就可以了,如果是直接手写路径,微软库自动作此处理了
bool gAppSHFileOperation(const QString& pathFrom, const QString& pathTo, const QString& title, const int flags)
{
    // flags为传入的操作:复制,删除,移动,重命名

    TCHAR wcFrom[MAX_PATH+1]    = {0};
    TCHAR wcTo[MAX_PATH+1]      = {0};
    TCHAR wcTitle[MAX_PATH+1]   = {0};

    wcsncpy_s(wcFrom, (TCHAR*)pathFrom.utf16(), pathFrom.length());
    wcsncpy_s(wcTo, (TCHAR*)pathTo.utf16(), pathTo.length());
    wcsncpy_s(wcTitle, (TCHAR*)title.utf16(), (title.length() > MAX_PATH ? 0 : title.length()));

    wcFrom[pathFrom.length()] = ‘\0‘;
    wcFrom[pathFrom.length()+1] = ‘\0‘;
    wcTo[pathTo.length()] = ‘\0‘;
    wcTo[pathTo.length()+1] = ‘\0‘;
    wcTitle[(title.length() > MAX_PATH ? 0 : title.length())] = ‘\0‘;
    wcTitle[(title.length() > MAX_PATH ? 0 : title.length())+1] = ‘\0‘;

    SHFILEOPSTRUCT lpFileOp = {0};
    lpFileOp.hwnd  =    NULL;
    lpFileOp.wFunc  =    flags; //FO_DELETE
    lpFileOp.pFrom   =    wcFrom;
    lpFileOp.pTo     =    wcTo;
    lpFileOp.fFlags  =    FOF_NOERRORUI|FOF_NOCONFIRMATION|FOF_SILENT; //不提示覆盖,不显示错误,不显示进度
    lpFileOp.lpszProgressTitle = wcTitle;

    return  (SHFileOperation(&lpFileOp)== 0);
}
时间: 2024-08-02 12:06:26

SHFileOperation()函数主要对文件夹的四种操作:复制,删除,移动,重命名的相关文章

在python中实现对文件的写入,读取,复制,批量重命名

1.写入内容至文件中 def write_file(): open_file = open("xxxx.txt","w") open_file.write("i want to open a file and write this.\n") open_file.close() write_file() 2.读取文件中的内容 #思路:1.以什么方式打开 2.读取文件 3.关闭文件 def read_file(): read_file = open(

python文件、文件夹的移动、复制、删除、重命名

import os.path ,shutil shutil.copytree("G://qqfile","G://new_qqfile")# 第一个是原来的文件夹,后面是新文件夹 #导入shutil模块和os模块 import shutil,os #复制单个文件 shutil.copy("C://a//1.txt","C://b") #复制并重命名新文件 shutil.copy("C://a//2.txt"

MFC文件夹以及目录常见操作

CString CCallSchedulingSystemDlg::GetFilePath(void) { HMODULE module = GetModuleHandle(0); char pFileName[MAX_PATH]; GetModuleFileName(module, pFileName, MAX_PATH); CString csFullPath(pFileName); int nPos = csFullPath.ReverseFind( _T('\\') ); if( nPo

文件和文件夹的移动、复制、删除、重命名

一.概述 Python中对文件和文件夹进行移动.复制.删除.重命名,主要依赖os模块和shutil模块,以下用实例集中演示文件的移动.复制.删除.重命名,用到的时候直接查询即可. 二.实例 1 #!/usr/bin/python3 2 # -*- coding:utf-8 -*- 3 __author__ = 'mayi' 4 __date__ = '2018/4/4' 5 6 """ 7 # # # # # # # # # # # # # # # # # # # # # #

自动创建文件夹的两种方法

自动创建文件夹的两种方法 1.CreateDictionary() CreateDirectory(myPath, 0); //在临时文件夹中创建本应用的文件夹 原型为:BOOL WINAPI CreateDirectory(__in  LPCTSTR lpPathName, __in LPSECURITY_ATTRIBUTES lpSecurityAttributes); 其中lpPathName是要创建的目录的路径,第2个涉及安全性问题 传NULL就好了 例如: char path[MAX_

转载:删除github上文件夹的两种方式

http://www.jianshu.com/p/286be61bb9b8 删除github上文件夹的两种方式(解决已经加入ignore的文件夹无法从远程仓库删除的问题) 如果此文件夹已被加入git追踪,那么删除方法很简单,只需要将此文件夹删掉,然后提交一下就可以了如果次文件夹曾经被加入过git追踪,现在被加入.gitignore里了,但是github上还有此文件夹.对于这种情况,稍微有点复杂,因为已经加入.gitignore的文件或文件夹,无法对其进行提交了,哪怕是将其删除,都无法提交.我们用

javaIO流之字节流的四种方式复制文件方式总结

/* * 需求:把e:\\a.mp4复制到当前项目目录下的copy.mp4中 * * 字节流四种方式复制文件: * 基本字节流一次读写一个字节: 共耗时:117235毫秒 * 基本字节流一次读写一个字节数组: 共耗时:156毫秒 * 高效字节流一次读写一个字节: 共耗时:1141毫秒 * 高效字节流一次读写一个字节数组: 共耗时:47毫秒 */ package cn.itcast_06; import java.io.BufferedInputStream; import java.io.Buf

Eclipse点击工程结构里任意文件或文件夹变拖动(或复制)的bug

本文为原创文章,欢迎转载,但请注明出处http://www.cnblogs.com/yexiubiao/p/5204601.html,未在文章页面明显位置给出原文连接的,将保留追究法律责任的权利. 在使用Eclipse做Android开发编辑布局文件时,会遇到当点击左侧工程结构里的文件或文件夹时(例如点击红框1处文件),系统自动弹出对话框,让你重命名改文件(红框2),让人特别难受. 这是Eclipse或ADT的一个bug,Eclipse把我们的点击操作理解成拖动操作了(结果表现为文件被复制或移动

复制多级文件,将一个文件夹中的所有内容复制到另一个文件夹中

复制多级文件,将一个文件夹中的所有内容复制到另一个文件夹中. 设计递归方法,通过传入源文件和目的文件,将源文件中内容完全复制到目的文件中:代码如下: private static void copyFolder(File srcFile, File destFile) throws IOException { //srcFile为源文件,destFile为目的文件 if (srcFile.isDirectory()) { File newFolder = new File(destFile, s