0

我使用 litedb 作为文件索引,借此我重新创建文件共享的目录结构并将 litedb.db 文件拖放到我的层次结构中的每个目录中。我遇到的问题似乎是目录结构长度超过 260 个字符(请参阅下面的错误消息)。连接到 litedb 时,有没有办法在连接字符串中启用对长文件名的支持?或者,有没有一种方法可以使用其他方法(例如 file.open AlphaFS)来实例化我的 litedb 实例。

System.IO.DirectoryNotFoundException: Could not find a part of the path 'C:\Users\......\Some deep directory which is 260+ characters long\index.db'.
  at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
  at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
  at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
  at LiteDB.FileDiskService.Initialize(Logger log, String password)
  at LiteDB.LiteEngine..ctor(IDiskService disk, String password, Nullable`1 timeout, Int32 cacheSize, Logger log, Boolean utcDate)
  at LiteDB.LiteDatabase.<>c__DisplayClass11_0.<.ctor>b__0()
  at LiteDB.LazyLoad`1.get_Value()
  at LiteDB.LiteCollection`1.EnsureIndex(String field, String expression, Boolean unique)
  at LiteDB.LiteCollection`1.EnsureIndex[K](Expression`1 property, Boolean unique)
4

1 回答 1

0

LiteDB 使用FileStreamctor 打开数据文件,因此可能是长路径的问题。但是,您可以将Stream其用作数据库的初始化程序,因此您可以在任何平台上打开。

于 2018-08-29T13:41:20.610 回答