ファイルがあるのに「ファイルが見つかりません」エラー への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 るしぇ  (社会人) 投稿日時 2009/9/25 22:47:37
>>あにす様
>結果を報告します。

[GetShortPathName]
http://msdn.microsoft.com/ja-jp/library/cc429345.aspx
戻り値も確認して? 0 なら失敗。ファイルが見つからない場合は 0 になる気がします。
投稿者 あにす  (社会人) 投稿日時 2009/9/25 22:45:05
>アリーさん
気持ち悪いですね。僕も原因が気になります。

ファイル名の文字コードとかが関係してるのかなぁ…。
投稿者 アリー  (社会人) 投稿日時 2009/9/25 22:26:43
>あにす様
結果を報告します。

Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" ( _
  ByVal LongPath As String, _
  ByVal ShortPath As String, _
  ByVal ShortPathSize As Long) As Long

  Dim ShortName As String * 1000
  GetShortPathName "\\99.9.9.999\kyoyu\AKI テス\テストでのコピー機(コピー用紙)の主に、受付事務の請求業務時、報告書のFAX時、テスト業務での対診表、手術例切り出し図の印刷など", ShortName, 1000
  MsgBox Left(ShortName, InStr(ShortName, vbNullChar) - 1)

以上のコーディングでmsgboxには何も表示されません。
ShortNameはIsNullで聞いてもNullではないようです。
デバックモードで見たら「・・・・・・・」が1000個分入っていました。
投稿者 るしぇ  (社会人) 投稿日時 2009/9/25 22:25:57
>しかし、重要なファイルではないのでもう無視してもよいです。(T T)
でも気持ち悪いよねwファイル作成方法が不明なのでどうにもできない可能性も高いですが。。
時間があるときに役立ちそうな情報だけ載せておきます。


>>99.9.9.999 に管理者権限で直接ログインしてもできないのですか?
>はい。管理者権限でもできないです。
>→「拡張子を変更するファイル使えなくなる可能性あるよ」の警告→はい
>・・・同じファイル名で同じ場所にファイルできた orz
なんかファイルを正しく認識できてない可能性が。。。
もともと、ネットワーク越しでも参照できている時点でコピーできなく
するって難しいです。不可能かもしれません。
リネームに関しては権限か、他の何かが排他でロックしてるとか、ログ
書き込みで常にアクセスしてるとかが考えられるけど、コピーできない
のは不思議。

ファイルの作成時に何か(終端なしとか?)特別なことしてるなら、同様の
手順で別ファイル作成して再現できるか確認したかったです。

全く別の観点から、不良セクタとか含んでいるのか?とか?
古いマシンならスキャンディスクとかしておいた方がいいかも。
ハードディスクの寿命だったりはしない?
投稿者 (削除されました)  () 投稿日時 2009/9/25 21:21:31
(削除されました)
投稿者 アリー  (社会人) 投稿日時 2009/9/25 21:17:39
るしぇ様 ありがとうございます。

>99.9.9.999 に管理者権限で直接ログインしてもできないのですか?
はい。管理者権限でもできないです。
(99.9.9.999は実際のアドレスではありません。)

>FileExists も成功します?できるならファイル固有の問題のようですね。
はい。そのフォルダ配下の該当ファイル以外はエラーなしです。

>拡張子が無いってことは、OS でアプリケーションとは結びついていない?
>どうやって作成したファイルですか?ファイルが壊れている可能性は?
そのファイルはメモとして使っているようでして、アプリとは結びついていません。
どう作成したかは分かりません。(すいません><)

>何かのアプリケーションでファイルの内容を確認できますか?
メモ帳で開こうとすると「該当ファイルのフルパス.txtが見つかりません。新しく作成しますか?」と警告がでます。
該当ファイルには.txtなどの拡張子はもともとついていません。
秀丸で開くと、開けますが何も中身はありません。

>ファイルの内容に関して情報はありますか?(バイナリで~とかテキストで~とか)
>ちなみに、ファイルサイズはどのくらいでしょう?
中身は何もないはずなのに、エクスプローラのサイズ欄には「19KB」と見えます。
該当ファイルのプロパティから見ると、「サイズ」「ディスク上のサイズ」共に0バイトです。

>るしぇ様
該当ファイルの「ファイル名」をコピー
→同じ場所で新規作成→テキスト文書
→「新規テキスト文書.txt」をコピーしたファイル名(拡張子なし)に変更
→「拡張子を変更するファイル使えなくなる可能性あるよ」の警告→はい
・・・同じファイル名で同じ場所にファイルできた orz

しかし、重要なファイルではないのでもう無視してもよいです。(T T)
(バックアップのツールを作成して、いつもこのエラーがでるので
 今は、エラーログに書いてスキップしています。毎日バックアッ
 プをしているので、毎日エラーログが残るだけです。)
お時間を割いてまで返答いただき、ありがとうございます。
m(_ _)m

以上
投稿者 あにす  (社会人) 投稿日時 2009/9/25 20:39:59
GetShortPathName関数で短いファイル名を取得して検証してみてはいかがでしょうか。
投稿者 るしぇ  (社会人) 投稿日時 2009/9/25 20:35:44
> 該当ファイルをコピペできない&リネームもできないので検証できません。
99.9.9.999 に管理者権限で直接ログインしてもできないのですか?

>他のファイル(Book1.xlsなど)はコピペできています。
FileExists も成功します?できるならファイル固有の問題のようですね。

…うーん。原因が思い浮かばないですねぇ。

[重要]以下の質問には、業務に差し支えない言葉を選んでお答えください。
場合によっては情報漏えいとして会社から責任を問われます。

拡張子が無いってことは、OS でアプリケーションとは結びついていない?
どうやって作成したファイルですか?ファイルが壊れている可能性は?
何かのアプリケーションでファイルの内容を確認できますか?
ファイルの内容に関して情報はありますか?(バイナリで~とかテキストで~とか)
ちなみに、ファイルサイズはどのくらいでしょう?
投稿者 アリー  (社会人) 投稿日時 2009/9/25 20:22:34
ご返答ありがとうございます。

>そのファイルと同じ場所にコピーした場合ですか?ではローカルにコピーしたら
>成功しますか?
同じ場所にコピーした場合も、ローカルにコピーした場合も
エラーが発生します。

>該当のフォルダは共有フォルダですか?共有フォルダの作成法は分かりますか?
>該当のファイルに拡張子はありませんか?拡張子の表示方法は分かりますか?
共有フォルダです。作成方法は分かります。
拡張子の表示方法も分かります。(エクスプローラのツールからフォルダオプション)
該当ファイルには拡張子はありません。

>そう予想したなら短いファイル名のテストファイルを作れば、すぐに検証できるのでは?
>で、結果は変わりましたか?ファイル名が長いのが原因でしたか?
該当ファイルをコピペできない&リネームもできないので検証できません。
他のファイル(Book1.xlsなど)はコピペできています。

以上、よろしくお願いします。
投稿者 るしぇ  (社会人) 投稿日時 2009/9/25 19:45:26
>ファイル名が長いのが原因だと思われるのですが、255文字にも達していないので
そう予想したなら短いファイル名のテストファイルを作れば、すぐに検証できるのでは?
で、結果は変わりましたか?ファイル名が長いのが原因でしたか?

>普通にこのファイルをコピペ(右クリックコピー→貼り付け)しようとしてもコピーエラーになります。
>ファイル名の変更をしようとしてもエラーになります。
そのファイルと同じ場所にコピーした場合ですか?ではローカルにコピーしたら
成功しますか?
該当のフォルダは共有フォルダですか?共有フォルダの作成法は分かりますか?
該当のファイルに拡張子はありませんか?拡張子の表示方法は分かりますか?
投稿者 アリー  (社会人) 投稿日時 2009/9/25 19:04:44
お世話になります。
開発環境はOS:Win2000、VB6.0です。

ファイルシステムオブジェクトを使用してファイルのコピーをしているのですが、
「ファイルが見つかりません」のエラーが出ます。(Err.Number=53)

ファイル名が長いのが原因だと思われるのですが、255文字にも達していないので
なぜこのようなエラーになるのかが分かりません。

以下、具体的に。
Private fso As New Scripting.FileSystemObject
If fso.FileExists("\\99.9.9.999\kyoyu\AKI テス\テス部でのコピー機(コピー用紙)の主に、受付事務の請求業務時、報告書のFAX時、テスト業務での対診表、手術例切り出し図の印刷など") = False Then
  MsgBox "何で?"
End If

ちなみにfso.FileExists(○○)の○○ファイルは確実に存在します。
普通にこのファイルをコピペ(右クリックコピー→貼り付け)しようとしてもコピーエラーになります。
ファイル名の変更をしようとしてもエラーになります。

詳しい原因と対処方法が分かりましたら
ご教授お願いいたします。

以上