[▲前のスレッド]

2009/12/8 (火) 00:08:29 トーリス  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
[5633] ディスクフルで保存するとファイルが壊れる
バグ報告
ディスクフルの状態でファイルを更新して保存すると、何のエラーメッセージも無く一見保存できたかに見えますが、開いてみると内容が\0の羅列に置き換わっています。

ちなみにメモ帳だと「ディスクフルです」とメッセージが表示され保存されないようになっています。

Windows XP SP3です。

2009/12/9 (水) 23:57:27 もか  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.15) Gecko/2009101601 Firefox/3.0.15 (.NET CLR 3.5.30729)
[5634] Re:ディスクフルで保存するとファイルが壊れる
バグ報告ありがとうございます。
エラーは受け取ってるのにメッセージを表示していないですね。

事前に容量チェックをするにしても
ほかのプロセスが並列で書き込んでいたら意味ないし、
ネットワーク上やNTFSのマウントが使われていた場合はややこしいことになりそうです。
クオーターもありますよね。

▼CDocLineMgr.cpp
>        catch(CError_FileOpen)
>        {
>                ::MYMESSAGEBOX(

...
>                        ファイルを保存できません。\nパスが存在しないか
...
>        }
>        catch(CError_FileWrite)
>        {

ここ。
>                nRetVal = FALSE;
>        }


以下開発メモ的なことをついでに書いておきます。
Unixだとこういう話もあります。
(別名で書き込んで、renameするといい)
http://slashdot.jp/comments.pl?sid=442678&cid=1530766
・これだとディスクの1/2以下しか書き込めない
・ちゃんとコードを書かないとアクセス権/ファイル属性がおかしくなる
・元のファイルを上書きできるかどうかは全内容をファイルに書き込んだ後に分かる
・TomcatやTortoiseSVNみたいな監視ソフトがいると一時ファイルの書き込みに反応して何かが動くことがある

これは、ファイルの改名時にエラーになる原因になったりする。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.000][st:0.000]