[解決済み] メモ帳は全てに勝る?
2022-05-17 19:29:46
質問
Windows Server 2012 R2 システムで、Kotlin プログラムが
FileChannel.tryLock()
を使ってファイルの排他ロックを保持しています。
val fileRw = RandomAccessFile(file, "rw")
fileRw.channel.tryLock()
このロックがかかった状態で はできません。 でファイルを開くことができます。
- ワードパッド
- メモ帳
-
C# でプログラム的に、任意の値の
FileShare
:using (var fileStream = new FileStream(processIdPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var textReader = new StreamReader(fileStream)) { textReader.ReadToEnd(); }
-
コマンドラインから
type
というコマンドを実行します。C:\some-directory>type file.txt The process cannot access the file because another process has locked a portion of the file.
-
インターネットエクスプローラー(そう、必死だったんです)
I できます メモ帳で開くことができます。
他の誰にもできないロックされたファイルを、いったいどうやってメモ帳が開けるのでしょうか?
どのように解決するのですか?
メモ帳は、あなたが試した他のエディターで使用されたと思われる通常のファイル読み込みメカニズムではなく、最初にメモリにマッピングすることによってファイルを読み込みます。この方法は、排他的な範囲ベースのロックがある場合でも、ファイルの読み取りを可能にします。
C# では、次のような内容で同じことを実現できます。
using (var f = new FileStream(processIdPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var m = MemoryMappedFile.CreateFromFile(f, null, 0, MemoryMappedFileAccess.Read, null, HandleInheritability.None, true))
using (var s = m.CreateViewStream(0, 0, MemoryMappedFileAccess.Read))
using (var r = new StreamReader(s))
{
var l = r.ReadToEnd();
Console.WriteLine(l);
}
関連
-
[解決済み】exec: "gcc": go buildしようとすると%PATH%に実行可能ファイルが見つからない
-
[解決済み] .batファイルのアイコンをプログラムで変更するには?
-
[解決済み] マイクロソフト既知のDLL
-
Win7でopensslを使用すると「ランダムな状態」を書き込めない問題
-
マイクロソフトのエラーコード
-
[解決済み] Windowsでgl3wを設定するには?
-
[解決済み] cmd lineを使用してファイルをZIPする方法は?
-
[解決済み] PowerShellのコマンドラインからWindowsのバージョンを確認する方法
-
[解決済み] 管理者として実行せずにネットワークドライブにマップするためのBATファイル
-
[解決済み] コマンドラインからすべての環境変数をリストアップ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] どのような場合に0x40010004のコードでプログラムが終了するのでしょうか?
-
[解決済み] Powershellでhead、tail、more、less、sedが行うことを行うには?[クローズド]です。
-
[解決済み] Powershell」が内部コマンド、外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されない
-
[解決済み] NERDTreeで隠しファイル(ピリオドで始まる)を表示するにはどうしたらいいですか?
-
[解決済み] Windowsの能書きは?
-
[解決済み] ssh_dispatch_run_fatal:message authentication code incorrect unable to ssh jupyter notebook on remote server.入力のMACが破損している。
-
[解決済み] mingw-w64スレッド:PosixとWin32の比較
-
[解決済み] Windowsネイティブアプリケーションを作るには?[クローズド]
-
[解決済み] ファイルパスの前に付ける「୧⃛(๑⃙⃘◡̈๑⃙⃘)୨⃛」は何ですか?
-
[解決済み] Windows CLIでタイムスタンプを使ったPingを打つ