{"id":181,"date":"2025-05-04T11:16:16","date_gmt":"2025-05-04T11:16:16","guid":{"rendered":"https:\/\/www.webmobkey.com\/blog\/?p=181"},"modified":"2025-11-16T10:22:08","modified_gmt":"2025-11-16T10:22:08","slug":"asp-net-core-mvc-ile-dosya-silme-islemi-sunucu-uzerinde-belirli-dosyalari-yonetme","status":"publish","type":"post","link":"https:\/\/www.webmobdesign.com\/blog\/tr\/asp-net-core-mvc-ile-dosya-silme-islemi-sunucu-uzerinde-belirli-dosyalari-yonetme\/","title":{"rendered":"ASP.NET Core MVC ile Dosya Silme \u0130\u015flemi: Sunucu \u00dczerinde Belirli Dosyalar\u0131 Y\u00f6netme"},"content":{"rendered":"\n<p id=\"0e5b\">Bu blog yaz\u0131s\u0131nda, ASP.NET Core MVC uygulamalar\u0131nda belirli dosyalar\u0131 sunucudan nas\u0131l silece\u011finizi \u00f6\u011frenebilirsiniz. \u00d6rne\u011fimiz, kullan\u0131c\u0131ya dosya silme i\u015fleminin ba\u015far\u0131l\u0131 olup olmad\u0131\u011f\u0131n\u0131 bildiren basit bir yap\u0131 i\u00e7ermektedir. Bu i\u015flem \u00f6zellikle y\u00fckleme i\u015flemlerinden sonra gereksiz dosyalar\u0131 temizlemek veya sunucudaki dosya d\u00fczenini korumak isteyen geli\u015ftiriciler i\u00e7in faydal\u0131d\u0131r.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"0899\">\u00d6rnek Kod<\/h4>\n\n\n\n<p id=\"02dc\">A\u015fa\u011f\u0131daki kodda&nbsp;<code>HomeController<\/code>&nbsp;i\u00e7inde, sunucuda belirli bir dosyan\u0131n silinmesini sa\u011flayan bir metot bulunmaktad\u0131r. Bu metot, dosyan\u0131n var olup olmad\u0131\u011f\u0131n\u0131 kontrol eder ve i\u015flemi sonu\u00e7land\u0131r\u0131r.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\nusing DosyaDelete.Models;\nusing Microsoft.AspNetCore.Mvc;\nusing System.Diagnostics;\n\nnamespace DosyaDelete.Controllers\n{\n    public class HomeController : Controller\n    {\n        private readonly ILogger&lt;HomeController&gt; _logger;\n\n        public HomeController(ILogger&lt;HomeController&gt; logger)\n        {\n            _logger = logger;\n        }\n\n        public IActionResult Index()\n        {\n            bool isDeleted = DeleteFile(&quot;Uploads\/3.png&quot;);\n            ViewBag.Message = isDeleted ? &quot;Dosya ba\u015far\u0131yla silindi.&quot; : &quot;Dosya bulunamad\u0131 veya silinemedi.&quot;;\n\n            return View();\n        }\n\n        private bool DeleteFile(string relativeFilePath)\n        {\n            try\n            {\n                \/\/ wwwroot yolunu dinamik olarak al\n                string wwwrootPath = Path.Combine(Directory.GetCurrentDirectory(), &quot;wwwroot&quot;);\n\n                \/\/ Tam dosya yolunu olu\u015ftur\n                string filePath = Path.Combine(wwwrootPath, relativeFilePath);\n\n                \/\/ Dosyan\u0131n var olup olmad\u0131\u011f\u0131n\u0131 kontrol et\n                if (System.IO.File.Exists(filePath))\n                {\n                    \/\/ Dosyay\u0131 sil ve true d\u00f6nd\u00fcr\n                    System.IO.File.Delete(filePath);\n                    return true;\n                }\n                else\n                {\n                    \/\/ Dosya yoksa false d\u00f6nd\u00fcr\n                    return false;\n                }\n            }\n            catch\n            {\n                \/\/ Hata olu\u015ftuysa false d\u00f6nd\u00fcr\n                return false;\n            }\n        }\n\n        &#x5B;ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]\n        public IActionResult Error()\n        {\n            return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });\n        }\n    }\n}\n<\/pre><\/div>\n\n\n<h4 class=\"wp-block-heading\" id=\"2c41\">Kodun Detayl\u0131 \u0130ncelemesi<\/h4>\n\n\n\n<p id=\"5bf3\">Kod,&nbsp;<code>Index<\/code>&nbsp;metodunda dosyan\u0131n ba\u015far\u0131yla silinip silinmedi\u011fini kontrol eder ve durumu&nbsp;<code>ViewBag.Message<\/code>&nbsp;ile kullan\u0131c\u0131ya bildirir. Bu bilgi daha sonra&nbsp;<code>View<\/code>&nbsp;katman\u0131nda g\u00f6r\u00fcnt\u00fclenir.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>DeleteFile Metodu<\/strong>:&nbsp;<code>DeleteFile<\/code>&nbsp;metodu, verilen dosya yoluna g\u00f6re dosyan\u0131n var olup olmad\u0131\u011f\u0131n\u0131 kontrol eder. Dosya mevcutsa&nbsp;<code>System.IO.File.Delete<\/code>&nbsp;fonksiyonunu kullanarak dosyay\u0131 siler ve i\u015flem sonucunu&nbsp;<code>true<\/code>&nbsp;olarak d\u00f6nd\u00fcr\u00fcr. Dosya bulunam\u0131yorsa veya bir hata olu\u015fursa&nbsp;<code>false<\/code>&nbsp;de\u011feri d\u00f6nd\u00fcr\u00fcl\u00fcr.<\/li>\n\n\n\n<li><strong>Dosya Yolu Belirleme<\/strong>: Dosya yolu belirlenirken&nbsp;<code>Directory.GetCurrentDirectory()<\/code>&nbsp;ile proje k\u00f6k dizinini al\u0131yoruz ve&nbsp;<code>wwwroot<\/code>&nbsp;klas\u00f6r\u00fcn\u00fc ekleyerek dinamik bir dosya yolu olu\u015fturuyoruz. Bu sayede proje dizin yap\u0131s\u0131 de\u011fi\u015fse bile do\u011fru dosya yoluna ula\u015f\u0131labilir.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"29c0\">Dosya Silme \u0130\u015fleminin Ba\u015far\u0131s\u0131n\u0131 Kullan\u0131c\u0131ya Bildirme<\/h4>\n\n\n\n<p id=\"8912\">Bu i\u015flem sonucunda&nbsp;<code>ViewBag.Message<\/code>, dosyan\u0131n ba\u015far\u0131yla silinip silinmedi\u011fine g\u00f6re&nbsp;<code>\"Dosya ba\u015far\u0131yla silindi.\"<\/code>&nbsp;veya&nbsp;<code>\"Dosya bulunamad\u0131 veya silinemedi.\"<\/code>&nbsp;mesajlar\u0131n\u0131 kullan\u0131c\u0131ya iletecektir.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"e7db\">Hata Y\u00f6netimi<\/h4>\n\n\n\n<p id=\"84c3\">Kodda, hata olu\u015fmas\u0131 durumunda i\u015flemin kesintiye u\u011framamas\u0131 i\u00e7in bir&nbsp;<code>try-catch<\/code>&nbsp;blo\u011fu bulunmaktad\u0131r. Hata durumunda&nbsp;<code>DeleteFile<\/code>&nbsp;metodu&nbsp;<code>false<\/code>&nbsp;de\u011feri d\u00f6nd\u00fcr\u00fcr ve bu durum kullan\u0131c\u0131ya bildirilir.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"6bd8\">Sonu\u00e7<\/h4>\n\n\n\n<p id=\"080e\">ASP.NET Core MVC ile dosya silme i\u015flemi, sunucuda dosyalar\u0131 y\u00f6netmek ve gereksiz dosyalar\u0131 temizlemek isteyen geli\u015ftiriciler i\u00e7in olduk\u00e7a i\u015flevsel bir y\u00f6ntemdir. Bu yap\u0131y\u0131 geli\u015ftirerek, dosya y\u00f6netimi \u00fczerinde daha fazla kontrol sa\u011flayabilir ve sistem performans\u0131n\u0131 art\u0131rabilirsiniz.<\/p>\n\n\n\n<p id=\"b21f\">ASP.NET Core MVC\u2019de dosya y\u00f6netimi ile ilgili ba\u015fka konular\u0131 incelemek i\u00e7in takipte kal\u0131n ve dosya silme i\u015flemlerinde en iyi uygulamalara odaklanarak daha g\u00fcvenli bir sistem olu\u015fturun!<a href=\"https:\/\/medium.com\/@ahmet-akn?source=post_page---post_author_info--80f03903c140---------------------------------------\"><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bu blog yaz\u0131s\u0131nda, ASP.NET Core MVC uygulamalar\u0131nda belirli dosyalar\u0131 sunucudan nas\u0131l silece\u011finizi \u00f6\u011frenebilirsiniz. \u00d6rne\u011fimiz, kullan\u0131c\u0131ya dosya &hellip; <a title=\"ASP.NET Core MVC ile Dosya Silme \u0130\u015flemi: Sunucu \u00dczerinde Belirli Dosyalar\u0131 Y\u00f6netme\" class=\"hm-read-more\" href=\"https:\/\/www.webmobdesign.com\/blog\/tr\/asp-net-core-mvc-ile-dosya-silme-islemi-sunucu-uzerinde-belirli-dosyalari-yonetme\/\"><span class=\"screen-reader-text\">ASP.NET Core MVC ile Dosya Silme \u0130\u015flemi: Sunucu \u00dczerinde Belirli Dosyalar\u0131 Y\u00f6netme<\/span>Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[51],"tags":[],"class_list":["post-181","post","type-post","status-publish","format-standard","hentry","category-web-tr"],"_links":{"self":[{"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/posts\/181","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/comments?post=181"}],"version-history":[{"count":1,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/posts\/181\/revisions"}],"predecessor-version":[{"id":323,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/posts\/181\/revisions\/323"}],"wp:attachment":[{"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/media?parent=181"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/categories?post=181"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webmobdesign.com\/blog\/wp-json\/wp\/v2\/tags?post=181"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}