• ベストアンサー

FavoritesフォルダやDeskTopフォルダ等のSpecialFolderのパス

FavoritesフォルダやDeskTopフォルダ等のパスを取得する良い方法ってありますか?OSに依存しないで取得したい為、フルパスというのは無しです。 WSHでSpecialFoldersを利用する方法では可能ですが、セキュリティ対策上動かしていません。 GetSpecialFolderメソッドでは定数が足りません。それとも、私が定数を知らないだけなのでしょうか。 何か、良い方法を教えてください。宜しくお願いします。

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

  • ベストアンサー
  • saruru
  • ベストアンサー率37% (3/8)
回答No.1

torokichiさんはじめまして。 APIのSHGetSpecialFolderLocationを使用すればよいのではないでしょうか? 参考URLを書いておきます。 そのペ-ジにいくつか特殊フォルダの取得方法が書いてありますので。 もちろんSHGetSpecialFolderLocationの使用方法も書いてあり、 サンプルもあります。それでは。

参考URL:
http://www.geocities.co.jp/SilkRoad/4511/vb/shget.htm
torokichi
質問者

お礼

saruruさん、はじめまして。 SHGetSpecialFolderLocationというAPIをはじめて知りました。 私が探していた、定数もすべて載っており、SHGetSpecialFolderLocationを使って取得が可能でした。 APIの知識がまだまだ未熟なのを痛感しております。 とても参考になるURLをありがとうございました。

関連するQ&A

  • 指定フォルダの絶対パス取得

    初歩的なことですが教えてください。 VB.netにて、指定したフォルダの相対パスに対する絶対パスの取得を行いたいのですが、良い方法が見つかりません。 「Path.GetFullPath メソッド」を使用して見ましたが、存在しないパス「例:\A\」を指定すると、勝手に「例:C:\A\」のように絶対パスが割り付けられてしまいます。実際に存在するパスを検索して取得することは出来ないのでしょうか? 例:「ABC」というフォルダが「C:\program files」や「D:\」などに存在するという結果です。

  • C# 2つのフォルダの相対パスを求めたいが…

    お世話になります。 二つのフォルダの相対パスを求めるメソッドを組みたいのですが、 MakeRelativeUriメソッドを使用すると実行時にどうしても InvalidOperationExceptionが出てしまいます。 下記がそのソースです。 string stPath = "C:/a/~~~"; stPath = stPath.Replace("/","\\"); Uri uri = new Uri(Path.GetFullPath(stPath + "\\")); // ディレクトリをと取得 string[] stDirectories = Directory.GetDirectories(stPath); foreach (string s in stDirectories) { string st = s.Replace("/", "\\"); Uri uri2 = new Uri(Path.GetFullPath(st + "\\")); Uri uri3 = uri2.MakeRelativeUri(uri); } 他のサイト様を拝見して、気を付けている点は、 1、相対ではなく、絶対で指定する。 2、末尾に"\\"を付ける。 3、"/"ではなく、"\\"に変更する の3点です。 それとも、MakeRelativeUriメソッドはフォルダには使えないのでしょうか? それとも、パスの中に2バイト文字が入っていてはダメ? 解決策をお願いいたします。 VC#2010Expressです。

  • デスクトップなど特殊フォルダのフルパスを取得したい

    VB6を使用しています。 デスクトップやシステムフォルダなどの特殊フォルダのフルパスを取得したいのですが、方法がよくわかりません。 No.260113の方の質問と同様になってしまうのですが、参考URLがすでになくなっているみたいで判りませんでした。 取得方法をご存知の方、ご教授いただきますよう、よろしくお願いいたします。

  • 機種依存文字を含むフォルダ/ファイルの読み込み

    .net frameworkのDirecory.GetDirecoriesメソッドについてお聞きしたいのですが、 ☆などのUNICODE文字を含んだフォルダのパスを読み込もうとすると ArgumentExceptionをスルーしてしまうのですが、UNICODE文字も含んだフォルダのパスを 取得したいのですが、回避方法は存在しないでしょうか? よろしくお願いします。

  • Default Userフォルダのパス取得について

    VB.NET又はVBScriptで、Default Userフォルダ内にあるApplication Dataフォルダのパスを取得する方法をご教示いただけないでしょうか。 初心者ですが、よろしくお願いします。

  • Excel2007で拡張子xlsmのブックを保存

    Excel2007でマクロ作成の初心者です。 以下のコードを実行させると、月次24年5月.xlsm-4143というブックができてしまいます。 そして開くこともできません。 どうしたら、月次24年5月.xlsm というブックにできるのでしょうか。 Sub データの保存() Dim Path As String, WSH As Variant Set WSH = CreateObject("WScript.Shell") Path = WSH.SpecialFolders("Desktop") & "\常用\H24年データ\月次" '和暦の年月で編集する Path = Path & Format(Date, "ee年m月") & ".xlsm" & Excel.xlWorkbookNormal '存在しない場合のみ作成する If Dir(Path) = "" Then ThisWorkbook.SaveAs Path End If Set WSH = Nothing End Sub

  • 社内イントラ内にあるフォルダにパスをかけたい

    社内のイントラ内サーバーに置いているフォルダにパスワードを手軽にかけるにはどうしたらよいのでしょうか。 自分自身は毎日のように使うフォルダのため、 あくまでも社内の他の人が私のフォルダを開こうとダブルクリックした際にパスワードを求められる といった簡易的なものを希望します。 過去の質問やフリーソフトなど探してインストールしてみたのですが、コレというものが見つかっていません。 http://www.vector.co.jp/vpack/filearea/win/util/security/cipher/ フォルダの見た目を偽装する方法やzip圧縮してパスをかけるなど方法 以外で簡易的なものがあったらお教えいただけると助かります。

  • 年月を付けて、ブックを保存したい

    Excel2007でマクロ作成中の初心者です。 毎月、「24年月次報告 年 月.xls 」というブックを作成しています。 以下のコードで、作成しています。 このコードを実行すると、デスクトップの「常勤」というフォルダの中の「一覧表」というフォルダに 「24年月次報告 年 月.xls」 というブックができます。 このコードを修正して、5月中に作成したら、「24年月次報告24年5月.xls」 というブック、 6月中に作成したら、「24年月次報告24年6月.xls」 というブックを作成したいのです。 どのように修正したら、それが実行できるのでしょうか。ご指導お願いします。 Sub 給与計算24年データの保存() Dim Path As String, WSH As Variant Set WSH = CreateObject("WScript.Shell") Path = WSH.SpecialFolders("Desktop") & "\常用\一覧表\24年月次報告" ActiveWorkbook.SaveAs Path & " 年 月.xls" Set WSH = Nothing End Sub

  • エクセル マクロで任意のフォルダのパスを取得する方法

    エクセルを使用して、任意のフォルダを指定し、その中に入っているファイル(jpg画像ファイル)の名前を取得、画像をエクセルシート内に貼り付けていくというマクロを作成しています。 今回質問はその前段の部分、使用者が任意のフォルダを指定して、そのフォルダのパスをマクロが取得するというところでてこずっています。 現時点では、画像が入っているフォルダのウィンドウのアドレスバーに入っているパスを、コピぺでフォームに貼り付けさせてます^^; それだと使用者にウインドウにアドレスバーを表示するには…みたいなところから説明しなければならないのでユーザーライクではありません。 そこで、通常良くあるような、フォルダやファイルを指定させるダイアログを出したり、もしくはフォームに任意のフォルダをドラッグ&ドロップしたりすることで、任意のフォルダのパスを取得できたらな、と思っています。 そのような方法(もしくはより良い方法)を実現するマクロの組み方をご存知でしたら、教えてくださいm(__)m 宜しくお願いします。

  • ExcelVBAで前後のパスとパス名を取得したい。

    Excel2000のVBAで現在いるフォルダの前後のフォルダ名とパス名を取得したいです。(できればさらに何階層か前後のフォルダも)取得できる関数はありますでしょうか。無ければ何かいい方法を教えてほしいです。お願いします。

専門家に質問してみよう