C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: ファイルコピーをしつつ別プロセスでそのファイルをオープン?


(過去ログ 13 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■4095 / inTopicNo.1)  ファイルコピーをしつつ別プロセスでそのファイルをオープン?
  
□投稿者/ ピョン吉 (1回)-(2007/06/06(Wed) 13:57:32)

分類:[VB.NET (Windows)] 

XPでVB.NET2005Express Editionを使っています。
ファイルをコピーしながら別プロセスでそのファイルをオープンすることは可能なのでしょうか?
排他制御の関係でできない気がしますが、できる方法をご存知の方いらっしゃいましたらご教授下さい。
引用返信 編集キー/
■4097 / inTopicNo.2)  Re[1]: ファイルコピーをしつつ別プロセスでそのファイルをオープン?
□投稿者/ HiJun (35回)-(2007/06/06(Wed) 14:34:33)
No4095 (ピョン吉 さん) に返信
> XPでVB.NET2005Express Editionを使っています。
> ファイルをコピーしながら別プロセスでそのファイルをオープンすることは可能なのでしょうか?
> 排他制御の関係でできない気がしますが、できる方法をご存知の方いらっしゃいましたらご教授下さい。

うーん。
普通に考えたら駄目ですよね。
ただ、お互いの処理で書込みせず、読み取り専用という制限を
つけたなら、
1.コピーの動作を呼び元ファイルをロックせずオープン
2.元ファイル内のデータを取得&別のファイル書く
でいけると思いますが、別プロセスがどの様なファイルアクセスを
行うのかがわからないので回答できるとしたらこの辺ぐらいしか...


引用返信 編集キー/
■4099 / inTopicNo.3)  Re[2]: ファイルコピーをしつつ別プロセスでそのファイルをオープン?
□投稿者/ ぼのぼの (54回)-(2007/06/06(Wed) 14:47:22)
No4097 (HiJun さん) に返信
> ■No4095 (ピョン吉 さん) に返信
>>ファイルをコピーしながら別プロセスでそのファイルをオープンすることは可能なのでしょうか?
> 
> うーん。
> 普通に考えたら駄目ですよね。

別プロセスがファイルを書き換えさえしなければ、こんな感じでいけませんかね?

Dim srcFileName As String = "C:\temp\test.txt"
Dim destFileName As String = "D:\temp\test.txt"
System.Diagnostics.Process.Start(srcFileName)    '(1)
System.IO.File.Copy(srcFileName, destFileName)   '(2)

(1)と(2)の順序を入替えたい場合は、コピーが終わるまで次に進まなくなるので、
(2)を別プロセスか別スレッドで行う必要がありますが。

引用返信 編集キー/
■4103 / inTopicNo.4)  Re[3]: ファイルコピーをしつつ別プロセスでそのファイルをオープン?
□投稿者/ ピョン吉 (3回)-(2007/06/06(Wed) 15:34:04)
HiJunさん、ぼのぼのさん
早速のご回答ありがとうございます。

HiJunさんの読み取り専用で開く方法ではとちょっと厳しいですねぇ。
ぼのぼのさんのやり方だと若干意味合いが変わってきます。

やっぱり無理なのかなぁ。
必ず実現しないといけない仕様ではないのでこれで調査完とします。
何かいいロジックが思いつけばまたよろしくお願い致します。
本当にありがとうございました。
解決済み
引用返信 編集キー/
■4107 / inTopicNo.5)  Re[1]: ファイルコピーをしつつ別プロセスでそのファイルをオープン?
□投稿者/ 渋木宏明(ひどり) (226回)-(2007/06/06(Wed) 18:21:01)
渋木宏明(ひどり) さんの Web サイト
2007/06/06(Wed) 18:28:58 編集(投稿者)

> ファイルをコピーしながら別プロセスでそのファイルをオープンすることは可能なのでしょうか?

「ファイルをオープン」とは、どんなモードでのオープンを指していたのでしょうか?

普通に考えて「読み取り専用」以外でのオープンは許可できるわけもないので、↑のようなコメントが付くわけです。

あるいは、オープンして何をしたかったのでしょうか?

ものすごく特殊なケースになりますが、最近の Windows OS には「ボリュームシャドーコピー」という機能があるので、それで対応できる可能性もあります。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -