【问题标题】:Return FileName Only when using OpenFileDialog仅在使用 OpenFileDialog 时返回 FileName
【发布时间】:2008-12-04 22:05:24
【问题描述】:

我正在使用以下方法浏览文件:

    OpenFileDialog.ShowDialog()
    PictureNameTextEdit.Text = OpenFileDialog.FileName

有没有办法只获取文件名?

FileName 方法返回完整的路径和文件名。

即我想要 Foo.txt 而不是 C:\SomeDirectory\Foo.txt

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    使用Path.GetFileName(fullPath) 只获取文件名部分,如下所示:

    OpenFileDialog.ShowDialog()
    PictureNameTextEdit.Text = System.IO.Path.GetFileName(OpenFileDialog.FileName)
    

    【讨论】:

      【解决方案2】:
      OpenFileDialog.ShowDialog()
      PictureNameTextEdit.Text = System.IO.Path.GetFileName(OpenFileDialog.FileName)
      

      【讨论】:

      • 为什么要投反对票?这是 OP 问题的正确示例代码。我将此信息包含在 Jon Skeet 的回答中。
      【解决方案3】:

      OpenFileDialog中获取文件名和完整路径的C++代码:

      textBox1->Text = OpenFileDialog1->FileName; //complete path textBox1->Text = System::IO::Path::GetFileName(OpenFileDialog1->FileName); //filename

      【讨论】:

        【解决方案4】:

        假设我确实选择了名为“MyFileName.docx”的 word2010 文件

        这仅适用于选定的文件扩展名“包括点标记,f.e (.docx)”

        MsgBox(System.IO.Path.GetExtension(Opendlg.FileName))
        

        这对于所选的不带扩展名的文件名:(MyFileName)

        MsgBox(System.IO.Path.GetFileNameWithoutExtension(Opendlg.FileName))
        

        您可以尝试“PATH 类”的其他选项,例如:GetFullPath、GetDirectoryName ...等等。

        【讨论】:

          【解决方案5】:

          如果您只想要选择的名称而不需要扩展名,您可以尝试此代码

          Imports System.IO
          
          
          PictureNameTextEdit.Text = Path.GetFileNameWithoutExtension(OpenFileDialog1.Fi‌​leName)
          

          感谢

          【讨论】:

            【解决方案6】:
            //Following code return file name only 
            
            string[] FileFullPath;
            string FileName;
            objOpenFileDialog.Title = "Select Center Logo";
            objOpenFileDialog.ShowDialog();
            
            FileFullPath = objOpenFileDialog.FileNames[0].ToString().Split('\\');
            FileName = FileFullPath[FileFullPath.Length - 1]; //return only File Name
            
            //Use following code if u want save other folder , 
            // following code save file to CenterLogo  folder which inside bin folder//
            
            System.IO.File.Copy(OFD.FileName, Application.StartupPath + 
            "/CenterLogo/" + FileName, true);
            

            【讨论】:

              【解决方案7】:

              使用 SafeFileName 而不是 FileName,它将返回一个没有路径的名称(和扩展名)。

              【讨论】:

                【解决方案8】:

                使用此代码将文件名放入 PictureNameTextEdit:

                OpenFileDialog.ShowDialog()
                PictureNameTextEdit.Text = OpenFileDialog.SafeFileName
                

                【讨论】:

                  猜你喜欢
                  • 2011-12-09
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2018-09-07
                  • 1970-01-01
                  • 2014-12-24
                  • 2012-01-16
                  相关资源
                  最近更新 更多