質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Q&A

解決済

1回答

895閲覧

InternetOpenUrlAで存在しないファイルをオープンしてもファイルハンドルが返ってきます。

vuivuimasahiko

総合スコア6

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

String

Stringは、ゼロ以上の文字から連続してできた文字の集合を扱うデータ型です。基本的にテキストを表すために使われます。

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

0グッド

0クリップ

投稿2019/11/14 09:42

WindowsアプリケーションでInternetOpenUrlAを用いて存在しないファイルを open してもNULLが返ってこず、ファイルハンドルが返ってきます

string a_DownloadURL(string URL) { HINTERNET interwebs = InternetOpenA("Mozilla/5.0", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL); HINTERNET urlFile; string rtn; if (interwebs) { urlFile = InternetOpenUrlA(interwebs, URL.c_str(), NULL, NULL, NULL, NULL); if (urlFile) { char buffer[2000]; DWORD bytesRead; do { InternetReadFile(urlFile, buffer, 2000, &bytesRead); rtn.append(buffer, bytesRead); memset(buffer, 0, 2000); } while (bytesRead); InternetCloseHandle(interwebs); InternetCloseHandle(urlFile); string p = a_replaceAll(rtn, "|n", "\r\n"); return p; } } InternetCloseHandle(interwebs); string p = a_replaceAll(rtn, "|n", "\r\n"); return p; }

string URLは存在しないファイルなのですが、urlFile にファイルハンドルが格納されNULLには成らないです。不在ファイルはスキップしたいのですが、何か方法あるでしょうか。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

意味のあるデータが置かれていない場合でもサーバは何かのデータは返していることがあります。 失敗するはずの対象アドレスにブラウザでアクセスしたときに何が表示されましたか? たとえば「存在しません」というような意味の html データとして送られてくるかもしれません。

つまり、接続してデータのやりとりをすることには成功しているので成功です。

その内容が意味のあるデータなのかはステータスコードを見るべきです。 HttpQueryInfo API に HTTP_QUERY_STATUS_CODE を渡すことで得ることが出来ます。 値が 200 番台なら成功です。

投稿2019/11/14 10:41

SaitoAtsushi

総合スコア5444

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問