掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ファイル操作に関して、こんなことできますでしょうか (ID:121790)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
原因が分かり解決できました。 以下の二点が原因でした。 ①問題の関数のその後の処理で、自分で作ったDLLを呼出していて、 Log出力を行っていた ②Dir関数を誤った認識で使用していた 後続処理で自分で作ったDLLを呼出していて、 そのDLLの中で処理結果をログファイルに出力していました。 この際にカレントディレクトリが、DLLのログファイルの出力先に 移動していました。 また、試行錯誤している中でOPENのモードを変えたりしてやって いたので、その際にDLLのログファイル出力先に、今回処理したい ファイルと同じ名前の0バイトファイルが出来上がっていたみたいです。 (これに気付いていませんでした。) それと、Dir関数について誤った思い込みで使用していました。 Dir関数の結果として返ってくるのは、ファイルまたはフォルダの 名前だけなのですね。 l_strFileName = Dir(App.Path & "AAA.txt") これで、絶対パス指定できているつもりになっていましたが、 存在確認自体は絶対パスでやっているが、 l_strFileNameに格納されるのは、"AAA.txt"だけで、 絶対パス指定になっていないという状態でした。 処理を順番でいくとこんな感じだったと思います。 ①問題の関数実行 (一回目は、期待通りのファイルをみれている。) ↓ ②DLL呼出 (カレントディレクトリ移動) ↓ ③問題の関数実行 (二回目は、DLLのログ出力先にあった0バイトファイルを みてしまっている。) 以下のように絶対パス指定で、変数に格納し直したら 上手くいきました。 l_strFileName = Dir(App.Path & "AAA.txt") If l_strFileName = "" Then 'ファイルが無い時の処理 End If l_strFileName = App.Path & "AAA.txt" ←★追加 最初は、実現可否について力を借りたいというつもりで 質問したのですが、結局は自分のプログラムのバグでした。 お騒がせしてすいませんでした。 お力添えをいただいた皆様ありがとうございました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.