0

用户通过对话框选择多个文件:

OpenFileDialog dialF = new OpenFileDialog();
DialogResult dialR = dialF.ShowDialog();  
filesRepNames = dialF.FileNames;  // save the name of files for later use

并且这些文件存储在一个字符串数组中。名称(每个)是文件的完整地址。我只是想自己存储文件名,而不是每个文件的完整地址。有没有办法只存储文件名而不是全部信息。

示例)我不想要:

D:\margin\2012\Cam\bin\Debug\action.JPG  

我只想:

action.jpg  

请注意,这些是多个文件而不是一个,否则我可以使用属性“fileinfo”

4

3 回答 3

4

您可以将 LINQ 与Path.GetFileName方法一起使用:

 filesRepNames = dialF.FileNames.Select(p => Path.GetFileName(p))
                                .ToList();
于 2012-10-04T17:02:09.143 回答
1

使用 Path 命名空间获取文件名:

    string sFileSpec = "E:\\Dev\\Test.Jpg";
    MessageBox.Show(System.IO.Path.GetFileName(sFileSpec));
于 2012-10-04T17:05:15.233 回答
1
public string[] getFilenameFromPath(string[] filePath)
    {
        char[] splitChar = new Char[]{'\\','\\'};
        for (int i = 0; i < filePath.Length; i++)
        {
            filePath[i] = filePath[i].Split(splitChar, StringSplitOptions.RemoveEmptyEntries).Last();
        }
        return filePath;
    }
于 2012-10-04T17:21:51.267 回答