Я исследовал это в течение некоторого времени и до сих пор не нашел правильного ответа. Мне нужно отобразить размер файла рядом с именем файла в моем файле .cshtml
. Мне нужно использовать Razor , чтобы добиться этого ... если у кого-то нет файлового метода, который будет работать как .GetExtension(file)
или .GetFileNameWithoutExtension(file)
.
Вот что я продолжаю сталкиваться:
На левом рисунке показано, что я хочу отобразить ... фактический размер файла на диске. Правильное изображение - это то, что отображается на веб-странице, и я даже не уверен, что оно отображается, но я просто использую @file.Length
, как предлагается в других постах, внутри foreach l oop, как показано ниже.
<table class="table table-responsive table-hover table-bordered table-condensed margin-bottom-none">
<!--############ HEADER SECTION ############-->
<tr class="bg-blue topRow-no-hover">
<td class="width-70">
<b>FORM NAME</b>
</td>
<td class="width-15">
<b>FILE TYPE</b>
</td>
<td class="width-15">
<b>PUBLISHED</b>
</td>
</tr>
<!--############ BODY OF TABLE ############-->
@foreach(var file in Directory.GetFiles(serverPath)){
<tr class="pointer">
<td>
@Path.GetFileNameWithoutExtension(file)
<a href="@Href(@path, Path.GetFileName(file))" target="_blank"></a>
</td>
<td>
@getFileType(Path.GetExtension(file))
</td>
<td>
@file.Length
</td>
</tr>
}
</table>
У меня также есть следующий метод, чтобы помочь с преобразованиями между файлами разных размеров:
@getFileSize(file.Length)
public string getFileSize(long source){
const int byteConversion = 1024;
double bytes = Convert.ToDouble(source);
if (bytes >= Math.Pow(byteConversion, 3)) //GB Range
{
return string.Concat(Math.Round(bytes / Math.Pow(byteConversion, 3), 2), " GB");
}
else if (bytes >= Math.Pow(byteConversion, 2)) //MB Range
{
return string.Concat(Math.Round(bytes / Math.Pow(byteConversion, 2), 2), " MB");
}
else if (bytes >= byteConversion) //KB Range
{
return string.Concat(Math.Round(bytes / byteConversion, 2), " KB");
}
else //Bytes
{
return string.Concat(bytes, " Bytes");
}
}
Однако, поскольку ни один из файлов не превышает 1024, все они получают КБ добавлено, как показано ниже на третьем изображении.
Если кто-либо есть какие-либо подсказки относительно того, что здесь происходит и как я могу это исправить, пожалуйста, помогите. Заранее спасибо.