MCPcopy Index your code
hub / github.com/dokan-dev/dokan-java

github.com/dokan-dev/dokan-java @1.1.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.1.1 ↗ · + Follow
389 symbols 723 edges 51 files 154 documented · 40% updated 4y ago1.1.0 · 2020-04-23★ 5219 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Dokan-Java

Introduction

Dokan-Java is a Java wrapper for Dokany 1.x releases and above. Using this project you are able to implement your own filesystem on Windows... in Java!

Dokany is a device driver providing an interface to develop and run your own filesystem on Windows (similar to FUSE). Its native bindings are written in C/C++, this library provides via JNA a Java interface to its API with additional convenience methods.

Runtime Dependencies

All dependencies can be seen in the dependecies section of the build file. The following are the primary dependencies:

How to Use

There are 2 ways to directly use dokan-java: 1. Use a pre-built version 2. Build it yourself

Pre-Built Version

The first stable release can be found here: https://bintray.com/infeo/maven/dokan-java

To use dokan-java in maven or gradle projects, you have to add jcenter as a repository and then find it under the following coordinates: * Maven

<dependency>
    <groupId>dev.dokan</groupId>
    <artifactId>dokan-java</artifactId>
    <version>1.1.0</version>
</dependency>
  • Gradle
dependencies {
    implementation (group:'dev.dokan', name:'dokan-java', version:'1.1.0')
}

A publication to MavenCentral is in progress.

Build Instructions

Prerequisite: JDK 11

Building a jar using Gradle: 1. Open Terminal 2. Navigate to the root folder of the project 3. Execute ./gradlew.bat jar

To publish to a local Maven repository, execute as the third step ./gradlew.bat publishToMavenLocal

Examples

Example user filesystems using this library, see the examples package dev.dokan.dokan_java.examples.

Contributing

You're encouraged to contribute. Fork the code and then submit a pull request.

License

This library is licensed under GNU LGPLv3.

Extension points exported contracts — how you extend this code

Byteable (Interface)
A byteable object can be converted into an array of Bytes. [11 implementers]
src/main/java/dev/dokan/dokan_java/Byteable.java
EnumInteger (Interface)
An EnumInteger is an object that is represented by an 32bit integer value. [15 implementers]
src/main/java/dev/dokan/dokan_java/constants/EnumInteger.java
DokanyFileSystem (Interface)
Main interface to implement. These methods will be registered in the dokany kernel driver to handle filesystem requests. [2 …
src/main/java/dev/dokan/dokan_java/DokanyFileSystem.java
Mountable (Interface)
An object which can be mounted in a filesystem. @author Armin Schrnek @since 2.0 [1 implementers]
src/main/java/dev/dokan/dokan_java/Mountable.java
FillWin32FindData (Interface)
(no doc) [1 implementers]
src/main/java/dev/dokan/dokan_java/DokanyOperations.java

Core symbols most depended-on inside this repo

isImplemented
called by 52
src/main/java/dev/dokan/dokan_java/AbstractDokanyFileSystem.java
ntStatusFromWin32ErrorCode
called by 23
src/main/java/dev/dokan/dokan_java/DokanyUtils.java
add
called by 20
src/main/java/dev/dokan/dokan_java/structure/EnumIntegerSet.java
getMask
called by 16
src/main/java/dev/dokan/dokan_java/constants/EnumInteger.java
toInt
called by 13
src/main/java/dev/dokan/dokan_java/structure/EnumIntegerSet.java
DokanMapKernelBit
called by 8
src/main/java/dev/dokan/dokan_java/DokanyUtils.java
enumSetFromInt
called by 7
src/main/java/dev/dokan/dokan_java/structure/EnumIntegerSet.java
size
called by 7
src/main/java/dev/dokan/dokan_java/structure/EnumIntegerSet.java

Shape

Method 308
Interface 32
Class 31
Enum 18

Languages

Java100%

Modules by API surface

src/main/java/dev/dokan/dokan_java/DokanyOperations.java85 symbols
src/main/java/dev/dokan/dokan_java/DokanyFileSystemStub.java28 symbols
src/main/java/dev/dokan/dokan_java/DokanyFileSystem.java27 symbols
src/main/java/dev/dokan/dokan_java/NativeMethods.java21 symbols
src/main/java/dev/dokan/dokan_java/structure/ByHandleFileInformation.java18 symbols
src/test/java/dev/dokan/dokan_java/structure/filesecurity/SelfRelativeSecurityDescriptorTest.java17 symbols
src/main/java/dev/dokan/dokan_java/examples/DirListingFileSystem.java11 symbols
src/main/java/dev/dokan/dokan_java/structure/filesecurity/AccessControlList.java10 symbols
src/main/java/dev/dokan/dokan_java/structure/DokanFileInfo.java10 symbols
src/main/java/dev/dokan/dokan_java/DokanyUtils.java10 symbols
src/main/java/dev/dokan/dokan_java/AbstractDokanyFileSystem.java9 symbols
src/main/java/dev/dokan/dokan_java/structure/EnumIntegerSet.java8 symbols

For agents

$ claude mcp add dokan-java \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page