2016-05-12 9 views
0

私はWindowsからLinuxにいくつかの機能を移植しています.LinuxのSHGetKnownFolderPathの機能に合わせるのが難しくなっています。実際にはglibにこの部分を取り入れるAPIがありますが、ここではそのライブラリを使いたくありません。また、linkは、.bashrcで変数をエクスポートすることでこれを行いますが、これを行うLinux APIについては気になります。SHGetKnownFolderPath Linuxの同等のAPI

また、hereは、xdg-user-dirにアクセスする方法のように説明されています。私はこれに固執するでしょう。そうしないといけないのです。

答えて

1

Linuxデスクトップの状態は、特にこの種のものでは悲しいことです。 は、いくつかのFreeDesktop標準ですが、下位互換性への一貫性とコミットメントのためにWindows Shell APIに近いものはありません。

私の経験上、最も安全なことはXDGのユーティリティ、特にxdg-user-dirの場合です(xdg utilsは他の場合に便利です)。最近普遍的に導入されており、通常は「正しい」ことをしています。また、多くのパッケージがそれらに依存しているので、どのDEでも統合(少なくともI0W:xdgのutilsを分解する設定を書いた人は、それを修正する可能性が高いです;もしスペックガベージそれは気付かないかもしれないxdgユーティリティで動作するようになります)。

この種のものであまりにも巧妙ではないようにしてください。 FirefoxはLinux上のファイル関連で賢明にしようとしています。その中の "open folder"をクリックすると無作為のアプリケーションが開きます(過去にGwenviewを開くのが大好きです。

0

HOMEという名前の環境変数から取得できるホームディレクトリ。これはgetenv()を使用して取得できます。あなたのホームディレクトリの中には、それほど多くの標準化されたディレクトリはありません。 Gnome、KDE、お友達がデスクトップに持っているものを使用しているのはDesktopです。さまざまなアプリケーションとアプリケーションは、.の接頭辞が付いたディレクトリで終わり、ほとんどのアプリケーションでディレクトリコンテンツのデフォルトリストを非表示にします(例:.sshおよび.mc)。