Dokan.NET 0.1.7をリリース
Dokan.NET 0.1.7をリリースしました。
Dokan.NETはDokanライブラリの.NETラッパーです。Dokan.NETを使用すると、C#などの.NET言語でWindowsのファイルシステムを作ることができます。
Dokan.NET 0.1.7では以下の変更があります。
- DokanOptionsにVolumeLabelパラメタの追加
- DokanOperationsにGetDiskFreeSpaceの追加
public class DokanOptions
{
public char DriveLetter;
public uint ThreadCount;
public bool DebugMode;
public bool UseStdErr;
public bool UseAltStream;
public string VolumeLabel;
}
GetDiskFreeSpaceはWindows APIのGetDiskFreeSpaceExに対応します。
http://msdn2.microsoft.com/en-us/library/aa364937(VS.85).aspx
int GetDiskFreeSpace(
ref ulong freeBytesAvailable,
ref ulong totalBytes,
ref ulong totalFreeBytes,
DokanFileInfo info);
詳しくは、sampleフォルダ以下のサンプルプログラムをご覧ください。
ボリュームラベルの指定ができるようになったのはうれしいです。
リクエストさせていただこうと思っていた機能のひとつです。
すみません、またご質問です。
どこに書かせていただくか迷ったのですがここへ書かせていただきます。
独自のファイルシステムを作ってみたのですが、そこへ
Visual C++ 2008 Express Edition でソースファイルを上書き保存しようとすると、
書き込みができないことがあります。
同じファイルにメモ帳や秀丸などでは問題なく上書き保存ができています。
どうも Visual C++ のソース書き込み時には、
CreateFile(.NET版です) が呼び出されるときに Access に Read、Mode に OpenOrCreate や Create が渡されてくるようです。
既存ファイルがある場合、OpenOrCreate や Create が指定されたらエラーにしていたのですが、このような場合を考えますと、ファイルシステムでは書き込み可としてファイルを開くように実装すればよいのでしょうか?
失礼しました。
書き込みができなかったのは、ERROR_ALREADY_EXISTS を返すときにマイナスをつけていたからでした。
いろいろ試行錯誤しているうちに残ってしまっていたようです。
ずっと悩んでいたことなのですが
もうあと10分試してからご質問すればよかったです。