【问题标题】:Check existing file and return the name of file检查现有文件并返回文件名
【发布时间】:2018-01-12 02:06:12
【问题描述】:

我有一个文件夹:E:\Photo。我想检查文件夹中是否有任何文件“.CR2”。如果存在,则返回文件名“.CR2”(例如,返回 E:\Photo\0102.CR2)。我只知道如何通过File.Exist()检查是否存在文件“.CR2”,但我不知道如何返回文件名。如何在 C# 中做到这一点?

【问题讨论】:

  • 从什么返回到什么?没有任何代码没人能猜到...

标签: c# directory filenames file-exists


【解决方案1】:
static void Main(string[] args)
    {
        var files = GetFileNames("D:\\Documents","docx");
    }
    public static string[] GetFileNames(string dirPath,string extention)
    {
        string[] files = { };
        if (Directory.GetFiles(dirPath, "*." + extention).Length > 0)
        {
            files = Directory.GetFiles(dirPath, "*." + extention);
            List<string> tempList = new List<string>();
            foreach (string file in files)
            {
                tempList.Add(file.Substring(file.LastIndexOf("\\") + 1, file.Length - file.LastIndexOf("\\") - 1));
            }
            files = tempList.ToArray();
        }
        return files;
    }

此方法返回一个包含所有文件的字符串数组。您可以将目录名和扩展名传递给方法。

【讨论】:

  • 非常感谢!我明白了!
【解决方案2】:

试试这个:

 private String GetFiles(string PathFolderName)
        {
            DirectoryInfo dir = new DirectoryInfo(PathFolderName);

            foreach (FileInfo fi in dir.GetFiles())
            {
               if (fi.ToString().Contains(".CR2"))
               {
                   return fi.ToString();
               }

            }
            return string.Empty;

        }

使用:

string resultfile =  GetFiles("E:\\FilesFoldername");

【讨论】:

    【解决方案3】:

    DirectoryInfo.GetFiles 是您要查找的内容:

    var files = Directory.GetFiles(@"E:\Photo\*.CR2");
    

    这将获得 所有 个扩展名为 CR2 的文件。如果您只需要第一次使用files.First()。

    【讨论】:

    • 非常感谢!这完全是我想要的!
    猜你喜欢
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-03-10
    相关资源
    最近更新 更多