2015-02-06 45 views
-2

我正在開發一個ASP.NET MVC 5應用程序,供用戶上傳視頻。我注意到有時視頻未找到的問題,因爲它似乎有重複的文件擴展名。檢查並刪除同一文件中的重複文件擴展名

enter image description here

什麼是困惑我是在調試器中,我得到了正確的路徑... C:\Users\MyUser\Documents\visual studio 2013\Projects\MyStructures\MyStructures\Content\Videos\bbb.mp4但它不是在Visual Studio中的內容文件夾顯示。 enter image description here

當我使用文件資源管理器打開該文件夾時,文件就在那裏。 enter image description here

顯示視頻的代碼從數據庫中提取文件名。

@if (!string.IsNullOrEmpty(post.VideoFileName)) 
{ 
    <div> 
    <video width="400" controls> 
     <source src="~/Content/Videos/@post.VideoFileName" type="video/mp4"> 
     <source src="~/Content/Videos/@post.VideoFileName" type="video/ogg"> 
     <source src="~/Content/Videos/@post.VideoFileName" type="video/webm"> 
     <p>Your browser does not support HTML5 video.</p> 
    </video></div> 
} 

如何使用C#檢查並刪除這些重複的文件擴展名?

+1

你是說這個文件叫做bbb.mp4.mp4? – itsme86 2015-02-06 19:06:55

+0

@MthethewG我不知道如何更改擴展名以刪除兩個.mp4擴展名。我編輯了我的答案。 – 2015-02-06 19:15:02

+0

你是如何在代碼中搜索視頻的?這可能不是因爲重複的文件擴展名。 – 2015-02-06 19:15:37

回答

5

它們沒有重複的擴展名。第一部分是應用程序註冊的類型描述(「VLC媒體文件(.mp4)」),類型的分機是VLC功能,第二部分顯示實際的分機「(.mp4)」 。嘗試JPEG文件:「JPEG圖像(.jpg)」或未知類型:「BAR文件(.bar)」。

我認爲任何開發者都應該enable Explorer to display file extensions反正。打開資源管理器窗口,單擊查看(或工具) - >選項,轉到查看選項卡,並取消選中「隱藏已知類型的擴展名」。

您正在排查錯誤的問題。

默認情況下,磁盤上的文件不會在Visual Studio的解決方案資源管理器中顯示。 To include an existing file,選擇您的項目或文件夾,然後單擊「顯示所有文件」按鈕。您將看到該文件,然後可以右鍵單擊該文件並選擇「包含在項目中」。

1

你可以嘗試像

if (File.Path(filename).EndsWith(".mp4.mp4")) 
{ 
    <handle issue> 
} 

但是,這只是一個非常乍一看答案,因爲我不允許出於某種原因發表評論。

2

你有幾種不同的方法,但你會想看看System.IO命名空間。具體而言,以下幾點:

  • DirectoryInfo
  • FileInto

在Microsoft Developer Network上的例子是相當stellar

你還沒有提供任何代碼,這讓我猶豫不決,主要是因爲我做這個任務並沒有幫助你。