• ベストアンサー

相対パスを絶対パスに変換したい

こんにちは。 いつもお世話になっております。 ファイルユーティリティ関連のOCXを作成しておりまして、行き詰まってしまいました。 どうかご教示下さい。 内容はタイトルの通り、相対パスを絶対パスに変換したいというものです。 OCXの作りとして、VBから絶対パス、相対パスが区別なく渡されるものとしてどちらでも絶対パスとして内部的に扱いたく思います。 例えばD:\test\bin、D:\test\workというフォルダが存在するとして、 D:\test\bin\sample.exe内で ".\..\work"が渡された場合に OCX内部で"D:\test\work"に変換するというものです。 以下のようなコードも試してみたのですが、どうもうまく動きません。 if(_fullpath(ApsPath, RelPath, 0x100) == NULL){ //変換失敗の場合 ApsPath = RelPath; } どうかよろしくお願いします。 環境:Windows 2000 VC6.0

質問者が選んだベストアンサー

  • ベストアンサー
  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.1

http://hp.vector.co.jp/authors/VA014162/hitch/path/path.htm と参考URLを参考にしてください。

参考URL:
http://www.athomejp.com/goldfish/api/fullpath.asp
sputnik8823
質問者

お礼

asucaさん、回答ありがとうございます。 正しく動作しました。

その他の回答 (1)

  • ddnp009
  • ベストアンサー率25% (15/58)
回答No.2

Windowsで。 shlwapi.hとshlwapi.libが要ります。 LPCTSTR PathCombine(LPTSTR, LPCTSTR, LPCTSTR);

参考URL:
http://nienie.com/~masapico/api_PathCombine.html
sputnik8823
質問者

お礼

ddnp009さん、回答ありがとうございます。 正しく動作しました。

関連するQ&A

  • C#で相対パスを絶対パスへ変換したい

    C#で相対パスを絶対パスへ変換したい C#でプログラミングしています。 以下のようにベースとなる絶対パスと、そこからの相対パスがあるとします。 string basePath = "C:\\Projects\\Test001\\Debug\\"; string relativePath = "..\\..\\Test002\\"; 2つの文字列をただ足し合わせるだけだと、 "C:\\Projects\\Test001\\Debug\\..\\..\\Test002\\" となってしまいます。 これでも目的のパス「C:\\Projects\\Test002\\」にアクセスできますが、なにか既存の関数などを使って、「C:\\Projects\\Test002\\」というちゃんとした絶対パスを取得する方法はないでしょうか?

  • 相対パスか絶対パス??

    CGIサイト内検索を設置したいと思っていますが、相対パスか絶対パスって言う言葉が出てきます。 (例)path/にはsearch.cgiまでの相対パスか絶対パスが入ります。 相対パス・絶対パスとは何でしょう? サーバーにあるホームディレクトリのフルパスとは違うのですか? もしフルパスと同じだと言った場合・・・ 「path/にはsearch.cgiまでの相対パスか絶対パスが入ります」ではフルパスが/home/hatenaだった場合は 下記にはどのようにはいるのでしょうか? (例)<form method="GET" action="path/search.cgi"> 再投稿ですが、もうチョット具体的に書いてみました 教えてくださいお願いします。

    • 締切済み
    • CGI
  • 絶対パスと相対パスはどちらがいい?

    htmlで自サイト内のリンクをつける場合、絶対パスと相対パスはどちらを使った方がいいのでしょうか? すべてのファイルが同じディレクトリにあるとして、 <a href="test.html">test</a> と <a href="http://example.com/test.html">test</a> では、SEOの効果が違ったりしますか? 教えて下さい。よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • <img src="相対パス">の絶対パスへの変換

    htmlで、 <img src="相対パス">が指定されている場合、絶対パスに一括変換する方法はありますか? すなわち <base href="~"> のようなことは出来ないでしょうか?

  • 絶対パスを相対パスに

    VC++2005 Express Editionです。 ドラッグアンドドロップで受け取った(DragQueryFile)絶対パスファイル名を相対パスに変換したいのですが、良いコードサンプルなどありましたら教えてください。できればUnicodeとマルチバイトの両方に対応させたいです。 GetCurrentDirectoryでカレントディレクトリを取得してみたのですが、この場合ドライブ名が大文字なのに対し、ドラッグアンドドロップで受け取ったドライブは小文字なので、簡単にはできそうにありませんでした。 文字列処理は今まで標準関数しか使ったことがありませんが、これを機会にコードなど勉強したいと思っています。 よろしくお願いします。

  • 相対パスを絶対パスに。

    Web巡回ロボットのようなモノを作ろうと思っています。 あるURLにアクセスし、そのソースからリンクされているURLを拾って・・・・を繰り返します。 そこで、相対パスを絶対パスに簡単に変換する方法はありますか? ご教授お願いします。

    • ベストアンサー
    • Java
  • 相対パス

    CFile::Rename(".\\inbox\\mdata05.bin",".\\inbox\\mdata04.bin"); としてサブフォルダー inbox にあるファイルmdata05.binの名前をmdata04.bin にしたいのですが .\\inbox\\mdata05.binには無効なパスが含まれています。 とメッセージが出ます。 相対パスの指定はどのようにすればよいのでしょうか? OSはVista、コンパイラはVC++2005 を使っています。 よろしくお願いします。

  • サイトルート相対パスと絶対パスのメリット・デメリット

    サイトルート相対パスと絶対パスのメリット・デメリット htmlでサイト内リンクを指定する際、 /test/test.html というサイトルート相対パスで指定する場合と、 http://example.com/test/test.html という絶対パスで指定する場合、 それぞれのメリット・デメリットはどういったものがあるでしょうか? ドメインは絶対に変更されないという前提の場合です。 絶対パスの方が重くなるなどのデメリットはありますか?

  • 相対パスについて

    初歩的なことですみません。 相対パスについて教えてください。 <public_html>---<cgi-bin>---<ccc>---<ttt.pl> *************| *************---<eee>---<test.html> こちらの構成で、(***は無視してください。) (public_htmlの下はcgi-binとeeeフォルダです。) test.htmlから見た、ttt.plのパスは ../cgi-bin/ccc/ttt.pl  でよいのでしょうか?? CGIを設置する時、ディレクトリを変えたら、動かなくなってしまったので・・・ 宜しくお願いします。

    • 締切済み
    • CGI
  • Word内の絶対パス<-相対パスを簡単にする方法はありますか?

    Word内の絶対パス<-相対パスを簡単にする方法はありますか? Wordファイル(文書内のリンクとしてブックマークがあります)を受け取って、PDFに変換したのですが、リンクが開けないのでおかしいなと思ってWordのファイルを確認すると、リンクが絶対パスになっていました。  これを一発で相対パスにする方法はないでしょうか。 どうしてもということになると、手打ちで絶対パスの部分を消していくしかないでしょうか。たぶんないのだろうと思いますが、それをやる決意をするにも、「そんな方法ない」と背中を押してもらえないかと思い質問しました。  個人的には、およそリンクを設定するには外部のURLでもない限り相対パスにしていますが、あえて絶対パスにしておく人は何かメリットがあってやっているのでしょうか?たとえば、汎用性(と言えばいいのでしょうか)を低くすることでセキュリティーの効果を持たせようとか、そういうことなのでしょうか。 よろしくおねがいします。