ファイルをデータベースにKB単位で格納しています。私は、ファイルの長さをファイル情報によってKBに変換するようにしています。ファイルサイズをKBで取得する
ファイルサイズがDBから返され、KB単位のサイズの値が等しい場合、自分のコードでのみDownloadPathからソフトウェアをインストールできます。しかし、私は常にDBからの値の返り値(常に1 KB)よりも小さいKBでSizeの値を得ています。私は一体どうしたんだろう。
解決に協力してください。
ファイルをデータベースにKB単位で格納しています。私は、ファイルの長さをファイル情報によってKBに変換するようにしています。ファイルサイズをKBで取得する
ファイルサイズがDBから返され、KB単位のサイズの値が等しい場合、自分のコードでのみDownloadPathからソフトウェアをインストールできます。しかし、私は常にDBからの値の返り値(常に1 KB)よりも小さいKBでSizeの値を得ています。私は一体どうしたんだろう。
解決に協力してください。
FileInfo FileVol = new FileInfo(DownloadPath);
string fileLength = FileVol.Length.ToString();
string length = string.Empty;
if (FileVol.Length >= (1 << 10))
length= string.Format("{0}Kb", FileVol.Length >> 10);
Length =>はファイルのKBになります。
上記のコード変更で元のファイルサイズよりも常に1KB少なくなっています。 – jerin
あなたは、このメソッドを使用してファイルサイズを計算することができます
static readonly string[] SizeSuffixes =
{ "bytes", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" };
static string SizeSuffix(Int64 value)
{
if (value < 0) { return "-" + SizeSuffix(-value); }
int i = 0;
decimal dValue = (decimal)value;
while (Math.Round(dValue/1024) >= 1)
{
dValue /= 1024;
i++;
}
return string.Format("{0:n1} {1}", dValue, SizeSuffixes[i]);
}
その後、サイズを計算した後、使用できるかどうか - 他の利用されているデータベースの名前とバージョンは何あなたの問題
を解決するためにチェック? –