注意在引用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;
}