SQLite.Net数据库大小

时间:2017-07-28 20:54:33

标签: xamarin sqlite xamarin.forms

有很多关于如何获取SQLite数据库大小的文章,但没有一篇文章侵犯了SQLite.Net的实现,这些实现没有他们在那些SO文章中调用的相同方法。我可以使用以下方法在Android中使用SQLite.Net获取文件大小,还是有更好/更快的方式?它似乎有效。

        SQLiteConnection connection;
        ...
        // connection implemented in constructor
        ...
        public long GetDBSize()
        {
            return File.ReadAllBytes(connection.DatabasePath).LongCount();
        }

2 个答案:

答案 0 :(得分:4)

您可以使用FileInfo获取文件的大小(Length属性):

var fileSize = new FileInfo(sdcardDBPath).Length;

示例:

var sdcardDBPath = Path.Combine(Android.OS.Environment.GetExternalStoragePublicDirectory(Android.OS.Environment.DirectoryDownloads).AbsolutePath, "debug.db");
var fileInfo = new FileInfo(sdcardDBPath);
Log.Debug(Constants.TAG, fileInfo.Length.ToString());

输出:

[SushiHangover] 161792

ADB ls -l输出:

adb shell ls -l /mnt/sdcard/Download/debug.db
-rw-rw---- 1 root sdcard_rw 161792 2017-07-28 17:08 /mnt/sdcard/Download/debug.db

答案 1 :(得分:0)

使用SushiHangover的答案我在Github上创建了一个演示应用程序,它还显示了表格中的行数。 Found Here