如何使用Java API从sesame中删除/删除存储库

时间:2015-07-31 11:07:19

标签: java rdf sesame

我有多个海龟文件。我使用 LocalRepositoryManager SailrRepository

将这些turtle(ttl)文件上传到芝麻内存商店

将文件上传到芝麻内存商店的代码

LocalRepositoryManager的初始化:

String dataDir = "D:\\SesameStorage\\data\\"
LocalRepositoryManager localManager = new LocalRepositoryManager(new File(dataDir));
localManager.initialize();

将存储库添加到LocalRepositoryManager:

String repositoryName = "data.ttl";

RepositoryConfig repConfig = new RepositoryConfig(repositoryName);
SailRepositoryConfig config = new SailRepositoryConfig(new MemoryStoreConfig());
repConfig.setRepositoryImplConfig(config);
manager.addRepositoryConfig(repConfig);

获取存储库对象:

Repository repository = manager.getRepository(repositoryName);
repository.initialize();

获取存储库连接以向其添加ttl文件。

File f = new File("D:\\SesameStorage\\data.ttl");
String fileName = f.getAbsolutePath();

RepositoryConnection con = repository.getConnection();
con.add(f, "file://" + fileName, RDFFormat.forFileName(fileName));

我成功将data.ttl文件添加到芝麻内存存储区。

但是当我从sesame服务器中删除该存储库并尝试删除data.ttl文件时,它会给我以下异常:

"该进程无法访问该文件,因为该文件正由另一个进程使用。"

删除存储库的代码是:

RepositoryConnection connection = manager.getRepository(repositoryName).getConnection();
if (connection != null) {
    connection.clear();
    connection.close();
    manager.removeRepository(repositoryName);

    File srcFile = new File("D:\\SesameStorage\\"+ repositoryName);
    if (srcFile.exists()) {
        srcFile.delete();
    }
}

因此我无法释放或删除海龟文件。

我做错了什么吗?

0 个答案:

没有答案