将长文件名转换成短文件名

Posted on 2019-01-04 23:55  努力成长静待花开  阅读(1336)  评论(0)    收藏  举报

实现效果:

  

知识运用:

   系统API函数GetShortPathName

  [DllImport("Kernel32.dll")]
  private static extern Int16 GetShortPathName(string IpszLongPath,StringBuilder IpszShortPath,Int16 cchBuffer);

  

实现代码:

        [DllImport("Kernel32.dll")]
        private static extern Int16 GetShortPathName(string IpszLongPath,StringBuilder IpszShortPath,Int16 cchBuffer);
        private void button1_Click(object sender, EventArgs e)
        {
            if (OFDlog.ShowDialog() == DialogResult.OK)
            {
                textBox1.Text = OFDlog.FileName;
                string longName = textBox1.Text;
                StringBuilder shortName = new System.Text.StringBuilder(256);
                GetShortPathName(longName,shortName,256);
                string myInfo = "长文件名:" + longName;
                myInfo += "\n" + "短文件名:" + shortName;
                label2.Text = myInfo;
            }