我希望删除图像文件。文件名为somefile.jpg和somefile_t.jpg,结尾是_t的文件是缩略图。使用此删除操作,我希望同时删除缩略图和原始图像。
代码一直工作到foreach循环,其中GetFiles方法什么也不返回。string.Substring操作成功地返回没有扩展名和_t (例如:somefile )的文件名。
我要删除的文件名中没有无效字符。代码在我看来不错,我唯一能想到的就是我没有正确地使用搜索模式函数。
filesource = "~/somedir/somefile_t.jpg"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();
               }
            }发布于 2012-06-01 03:24:10
此代码适用于我:
        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“子字符串开头的图像和缩略图文件。
https://stackoverflow.com/questions/10843810
复制相似问题