最近项目中,在做项目插件的时候涉及到了对资源管理器的一些基本操作,这里主要讲下在window下对资源管理器的选择,打开,保存的三个基本操作。
一、对指定文件的路径选择
/*
* 选择某个文件夹
*/
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Auto)]
public class SelectFile
{
public IntPtr hwndOwner = IntPtr.Zero;
public IntPtr pidlRoot = IntPtr.Zero;
public String pszDisplayName = null;
public String lpszTitle = null;
public UInt32 ulFlags = 0;
public IntPtr lpfn = IntPtr.Zero;
public IntPtr lParam = IntPtr.Zero;
public int iImage = 0;
}
public class SelectFileLog
{
[DllImport("shell32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)]
public static extern IntPtr SHBrowseForFolder([In, Out] SelectFile ofn);
[DllImport("shell32.dll", SetLastError = true, ThrowOnUnmappableChar = true, CharSet = CharSet.Auto)]
public static extern bool SHGetPathFromIDList([In] IntPtr pidl, [In, Out] char[] fileName);
public static string GetSelectFileName()
{
SelectFile selectFileName = new SelectFile();
selectFileName.pszDisplayName = new string(new char[2000]);
selectFileName.lpszTitle = "选择文件夹";
IntPtr intPtr = SHBrowseForFolder(selectFileName);
char[] chArray = new char[2000];
for (int i