私は文書https://msdn.microsoft.com/en-us/library/9706cfs5(v=vs.110).aspxを調べましたが、操作が原子的であるかどうかには何も見つかりませんでしたか?他のファイルがコピー中にファイルにアクセス/読み取りできるという意味では原子的です。System.File.IO.Copyアトミックです(コピー中に別のプロセスがアクセス/読み取りできます)?
答えて
私は「原子」とは思わないあなたは(私の知る限りは、P /呼び出しCopyFileTransacted
なし.NETで行うことはできません)アトミックトランザクションの一部としてコピーの話をしている場合を除き、あなたの質問のための右の文言です。
実装の詳細では、これは...と言いましたが、.NETはさまざまなプラットフォームで動作し、それぞれが異なる場合があります。
File.Copy()
Windowsデスクトップの実装では、はWin32 CopyFile
を呼び出します。この点での行動は...文書化されていませんが、ハンドルがどのように開かれているかを調べることができます。簡単なテストから、あなたはそれを参照することができます:
- ソースファイルを
FILE_SHARE_READ
、FILE_SHARE_WRITE
、FILE_SHARE_DELETE
で開かれています。 - 対象ファイルは
FILE_SHARE_READ
,FILE_SHARE_WRITE
で公開されています。
安全仮定:、OS、メディアおよびファイルシステムには異なる規則がある可能性があります。これが時間の経過と共に安定しているとも仮定しないでください。
と仮定してください。ソースファイルにFILE_SHARE_READ
があり、ターゲットファイルについては何も想定していないことが想定されます。
私は不思議です、ファイルハンドルがどのように開かれたかどう点検しましたか? – stakx
@stakx私は怠け者です...ここではWinDbgはありません。 –
- 1. .NETの64ビットシステムでのアトミック読み取り/書き込みサイズ?
- 2. プロセスが読み取りでハングする
- 3. 読み取り中にデータリーダーを中断できますか?
- 4. 0x00840bd7でのアクセス違反:0x00000000 'の読み取り。プロセス....(5644)「
- 5. x64 CPUでのアトミック16バイトの読み取り
- 6. 読み取り専用アクセスでSQL Serverデータベースを開きます -
- 7. Linux:1つのプロセスでシリアルポートからデータを読み取り、別のプロセスでデータを書き込む
- 8. pythonでコピーされたファイルは別のプロセスからアクセスできません
- 9. Android - プログラムで別のプロセスのメモリを読み取る
- 10. 複数のプロセス読み取り/書き込みfifo
- 11. 1つのプロセスで同じソケットに書き込み、PHPの別のプロセスから応答を読み取る方法はありますか?
- 12. ファイルストリームを読み込みできませんが、ファイルをコピーできますか?
- 13. イメージファイルのコピーが別のプロセスで使用されています
- 14. 中間結果を別の読み取り方法で使用する方法
- 15. プロセスの読み取りプロセスメモリがすべてを返さない
- 16. シンプルなロガークラスvsnprintfが読み取りアクセス違反でクラッシュする
- 17. C#ファイルを読み取り専用で読み取り/書き込みする
- 18. ファイルを読み取り、標準出力にコピーします。
- 19. pubnub.grant()読み取りアクセスがPUBNUB PAM
- 20. プロセスが別のプロセスで使用されているため、プロセスがファイルにアクセスできません。
- 21. 子プロセスでパイプを読み取って、2番目の読み取りでハングする
- 22. 参照ライブラリを読み込めません - プロセスが別のプロセスで使用されているため、そのファイルにアクセスできません
- 23. 原子の読み取りとアトミック書き込みを確実にする方法は?私は次のように原子が整数(int型ではない)と、他の人に読み込み、アトミック書き込みたい
- 24. 私の別のプロセスが私のアプリのクラスにアクセスできますか?
- 25. MSysObjectエラーの読み取りアクセス許可がありません
- 26. ファイルをコピーできません。プロセスが別のプロセスで使用されているため、ファイルにアクセスできません。
- 27. プロセスがファイルにアクセスできません。別のプロセスで使用されているためです。
- 28. アクセス操作と読み取り/書き込み。違いは何ですか?
- 29. XMLの読み取り中にエラーが発生しました
- 30. JSONObejctの読み取り中にエラーが発生しました
「アトミック」とは何ですか?何について?ロック?ファイルのコピー中に発生する可能性のあるエラーはかなり多く、 'Copy'はすべての環境で同じように動作するわけではありません。 – Kobi
コピー中に別のプロセスがファイルにアクセス/読み取りできますか? – Almir
それは良い質問です。質問とそのタイトルを編集して、意味を正確に説明する必要があります。現在は明確ではありません。 – Kobi