有很多关于如何获取SQLite数据库大小的文章,但没有一篇文章侵犯了SQLite.Net的实现,这些实现没有他们在那些SO文章中调用的相同方法。我可以使用以下方法在Android中使用SQLite.Net获取文件大小,还是有更好/更快的方式?它似乎有效。
SQLiteConnection connection;
...
// connection implemented in constructor
...
public long GetDBSize()
{
return File.ReadAllBytes(connection.DatabasePath).LongCount();
}
答案 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