首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >尝试从名称匹配\包含特定字符串的单个目录中删除多个文件

尝试从名称匹配\包含特定字符串的单个目录中删除多个文件
EN

Stack Overflow用户
提问于 2012-06-01 02:51:12
回答 1查看 1.5K关注 0票数 0

我希望删除图像文件。文件名为somefile.jpgsomefile_t.jpg,结尾是_t的文件是缩略图。使用此删除操作,我希望同时删除缩略图和原始图像。

代码一直工作到foreach循环,其中GetFiles方法什么也不返回。string.Substring操作成功地返回没有扩展名和_t (例如:somefile )的文件名。

我要删除的文件名中没有无效字符。代码在我看来不错,我唯一能想到的就是我没有正确地使用搜索模式函数。

代码语言:javascript
运行
复制
filesource = "~/somedir/somefile_t.jpg"
代码语言:javascript
运行
复制
var dir = Server.MapPath(filesource);


            FileInfo FileToDelete = new FileInfo(dir);


            if (FileToDelete.Exists) 
            { 
                var FileName = Path.GetFileNameWithoutExtension(FileToDelete.Name);

                foreach(FileInfo file in FileToDelete.Directory.GetFiles(FileName.Substring(0, FileName.Length - 2), SearchOption.TopDirectoryOnly).ToList())
               {
                   file.Delete();
               }

            }
EN

回答 1

Stack Overflow用户

发布于 2012-06-01 03:24:10

此代码适用于我:

代码语言:javascript
运行
复制
        var file_path = @"K:\Work\IoCToy\IoCToy\image.jpg";
        var dir = Path.GetDirectoryName(file_path);
        var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(file_path);
        var files = Directory.EnumerateFiles(dir, string.Format("{0}*", fileNameWithoutExtension), SearchOption.TopDirectoryOnly);

当然,您必须根据返回的文件名删除这些文件。我假设您的文件夹只包含以" image“子字符串开头的图像和缩略图文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10843810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档