C# 使用SHFileOperation 复制文件 注意引用方式
2015-01-07 15:57
357 查看
注意在引用Dll 时,[ [DllImport("shell32.dll", CharSet = CharSet.Unicode)],后面的 [ CharSet = CharSet.Unicode)] 一定要添加,否则出现未知错误。
引用 SHFILEOPSTRUCT 结构体时 也要设置CharSet ,否则也会出现未知错误。
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct SHFILEOPSTRUCT
{
public IntPtr hwnd;
[MarshalAs(UnmanagedType.U4)]
public int wFunc;
public string pFrom;
public string pTo;
public short fFlags;
[MarshalAs(UnmanagedType.Bool)]
public bool fAnyOperationsAborted;
public IntPtr hNameMappings;
public string lpszProgressTitle;
}
在此记一下,调试时郁闷自己很久,关键是没有对C# 系统学习,不清楚DllImport 的用法。
引用 SHFILEOPSTRUCT 结构体时 也要设置CharSet ,否则也会出现未知错误。
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct SHFILEOPSTRUCT
{
public IntPtr hwnd;
[MarshalAs(UnmanagedType.U4)]
public int wFunc;
public string pFrom;
public string pTo;
public short fFlags;
[MarshalAs(UnmanagedType.Bool)]
public bool fAnyOperationsAborted;
public IntPtr hNameMappings;
public string lpszProgressTitle;
}
在此记一下,调试时郁闷自己很久,关键是没有对C# 系统学习,不清楚DllImport 的用法。
相关文章推荐
- [懵懂边缘]使用C#在进度条中显示复制文件的进度
- 使用C#在进度条中显示复制文件的进度
- C#中使用API(SHFileOperation)进行文件操作,特别说明了回收站相关参数
- 使用javascript比较数字大小和引用C#后台变量的注意事项
- c# 引用 MySQL使用基于Parameter方式代码,总是提示:“Column '列名' cannot be null”
- 使用 SqlBulkCopy 大量复制文字文件之 C# 程序代码
- 使用C#在进度条中显示复制文件的进度
- C#中使用API(SHFileOperation)进行文件操作,特别说明了回收站相关参数
- 使用C#在进度条中显示复制文件的进度
- sharepoint 2007 使用explorer 的方式打开文档库,无法复制大于50M的文件
- 使用C#在进度条中显示复制文件的进度
- 在C#中利用WMI从快捷方式中复制目标文件
- 使用 SqlBulkCopy 大量复制文字文件之 C# 程序代码
- 使用C#在进度条中显示复制文件的进度
- 使用C#在进度条中显示复制文件的进度
- 使用C#在进度条中显示复制文件的进度
- 使用C#在进度条中显示复制文件的进度
- 使用C#在进度条中显示复制文件的进度
- 使用C#在进度条中显示复制文件的进度
- c#中使用api(shfileoperation)进行文件操作,特别详解了回收站相关参数