画像ファイルを削除したいのですが。ファイルには名前が付けられsomefile.jpg
、末尾にがsomefile_t.jpg
付いているファイルが_t
サムネイルです。この削除操作で、サムネイルと元の画像の両方を削除したいと思います。
コードは、メソッドが何も返さないforeach
ループまで機能します。string.Substring操作は、拡張子や例GetFiles
がないファイル名のみを正常に返します。_t
somefile
削除したいファイル名に無効な文字はありません。コードは私には良さそうですが、私が考えることができるのは、どういうわけかsearchpattern関数を適切に使用していないということだけです。
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();
}
}