答えてねっとは、
マイクロソフトが運営する
パソコンに関する
Q&Aサイトです。

質問

プログラムからファイルオープンエラー

製品名:OS製品/Windows XP/サービスパック 2

現象:おかしい/エラーが出る

懸賞ポイントが設定されています。 100

C言語で開発していますが、サイズの小さいファイルを多数出力すると、『イベントID:51』のディスクアクセスエラーが発生し、以後OSが不安定な状態となり再起動せざるを得ない状態となります。

テスト的に以下のような簡単なプログラムで試しても再現します。
※正確には、再現するマシンと再現しないマシンがあります。

  ・あるフォルダ(C:\tmpなど)の下にフォルダを2000個、
   さらにそのフォルダの下に1000個ずつの0バイトファイルを作成。
  ・ファイルは、fopenとfcloseで作成し、何も書き込まない。(つまり0バイトのファイルを作成)
  ※1プロセス、複数プロセス、複数スレッドで処理しても結果は同じ。

<環境>
 機種: DELL DIMENTION 9100 など
 OS: Windows XP SP2
 MEM: 2GB
 HDD: 300GB

回答1 (この回答は質問に対する回答です)

  • 投稿ID:A2007370213
  • 投稿日時:2007/12/05 17:04

可能性としてNortonなどのAuto-Protectなどが有効になっていてアクセスがおいつかないとか?

  •  

回答2 (この回答は質問に対する回答です)

  • 投稿ID:A2007370219
  • 投稿日時:2007/12/05 17:07

フォルダ数には400個という制限があります。
下記回避策で数を増やす必要がありますね。
http://support.microsoft.com/kb/813711/ja

  •  

回答3 (この回答は回答2に対する回答です)

  • 投稿ID:A2007370224
  • 投稿日時:2007/12/05 17:10

追記:
SP2で修正済みとありますが、掲題の「フォルダの表示設定やカスタム設定が失われる、または設定が正しくない」
が修正済みという事と思われます。

  •  

回答4 (この回答は回答2に対する回答です)

  • 投稿ID:A2007370227
  • 投稿日時:2007/12/05 17:12

> フォルダ数には400個という制限があります。
> 下記回避策で数を増やす必要がありますね。
http://support.microsoft.com/kb/813711/ja

それは、レジストリに保存される
> 各フォルダの表示設定やカスタム設定
のデフォルトの個数であって、フォルダの中に作成できるフォルダ数の上限では
ない。

質問者の質問の趣旨、そしてMSKBの中身をちゃんと理解してから回答しなさいな。

  •  

回答5 (この回答は回答4に対する回答です)

  • 投稿ID:A2007370284
  • 投稿日時:2007/12/05 18:03

4/のお偉いさん
実験・実証されたのですか?
偉そうにいつもおっしゃるが回答できないのならむやみな書込みは止めてほしい。

  •  

回答6 (この回答は質問に対する回答です)

  • 投稿ID:A2007370313
  • 投稿日時:2007/12/05 18:30

ファイル作成時のファイル名・フォルダ名を生成するときにどのような規則になって
いるんでしょうかね?
ロングファイル名から8.3形式を生成するときにファイル名で何らかの衝突が発生
しているという可能性があるような気が少しします。

# FAT32ボリュームでは1フォルダにはファイル・フォルダを作成することができる
# 最大数が32,766(=2^31-2)個になっていますが、ロングファイル名を使うと、
# 8.3形式のショートファイル名生成時に衝突が発生して、早い段階でファイルが
# 作成できないということがあります。
# これは実験したことがありますので。

  •  

回答7 (この回答は回答6に対する回答です)

  • 投稿ID:A2007370319
  • 投稿日時:2007/12/05 18:33

あ、記憶間違いがあった。
FAT32の1フォルダ内のファイルの最大数は65,534(=2^16-2)個だったわ。
# 32766の右辺の式も間違っているし...
[W98:FAT16、FAT32 でディレクトリ内に作成できる最大ファイル数]
http://support.microsoft.com/kb/436213/ja

  •  

昨日の利用状況


総投稿数 898 件

回答総数 717 件

登録者数 67 人

利用登録ユーザ 2012 人

ゲスト 24453 人

ページビュー 128752

登録済みFAQ 20 件

景品応募サイト

Windows ヘルプと使い方

Microsoft Users

クロスプラットフォーム WEB ブラウザプラグイン:Silverlight