2

ディレクトリが存在するかどうかを確認し、存在しない場合は作成し、アプリケーションの起動時にロックする必要があります。したがって、アプリケーションが実行されている限り、誰もディレクトリを削除できません。

その中にダムファイルを保存して開いたままにして、削除できないようにすることはできると思いますが、可能であればそうしないことを好みます。どうすればそれを達成できますか?


現在、ファイルを書き込む必要があるときはいつでもこれを行います。

if (!Directory.Exists(path))
    Directory.CreateDirectory(path);

Directory.CreateDirectoryこの例でも、 とFile.Create呼び出しの間のディレクトリを削除することは可能です。

4

3 に答える 3

0

どこかに一時フォルダーを作成し、そこですべての処理を行い、完了したらファイルを作成して宛先フォルダーに移動することをお勧めします。すべてが正常に完了したら、一時フォルダーを削除できます。

于 2012-10-08T17:17:24.213 に答える
0

dir で CreateFile WINAPI 関数を使用します。テストしていませんが、うまくいくと思います。

[DllImport("kernel32.dll", SetLastError = true)]
        private static extern SafeFileHandle CreateFile(
            string lpFileName,
            FileAccess dwDesiredAccess,
            FileShare dwShareMode,
            IntPtr lpSecurityAttributes,
            FileMode dwCreationDisposition,
            int dwFlagsAndAttributes,
            IntPtr hTemplateFile);

const int FILE_FLAG_BACKUP_SEMANTICS = 0x02000000;
var dirlock = CreateFile("C:\\mydir", FileAccess.Read, FileShare.None, IntPtr.Zero, FileMode.Open,
                                     FILE_FLAG_BACKUP_SEMANTICS, IntPtr.Zero);
于 2012-10-08T17:23:27.523 に答える
0

ディレクトリにダミーの一時ファイルを作成し、プログラムの存続期間中は開いたままにします。そうすれば、ディレクトリを削除しようとすると、「使用中のディレクトリ」というエラー メッセージが表示され、削除できなくなります。

于 2012-10-08T17:06:05.663 に答える