检查现有文件并返回文件名

Posted

技术标签:

【中文标题】检查现有文件并返回文件名【英文标题】: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# 中做到这一点?

【问题讨论】:

从什么返回到什么?没有任何代码没人能猜到... 【参考方案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()

【讨论】:

非常感谢!这完全是我想要的!

以上是关于检查现有文件并返回文件名的主要内容,如果未能解决你的问题,请参考以下文章

Android:打开现有 PDF 文件检查并填写复选框字段,然后保存文档的新版本

File.exists() 为现有文件返回 false

检查文件系统上文件的修改日期并获取最新文件

为啥浏览器在现有脚本上返回 404?

Django 上传:丢弃上传的重复文件,使用现有文件(基于 md5 的检查)

从循环中多次插入并检查现有字段