aboutsummaryrefslogtreecommitdiff
path: root/files/ja/mozilla/tech/xpcom/reference/components/nsdirectoryservice/index.html
blob: dbec00fb0617df9b5576ab9d626bc6b22db53654 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
---
title: nsDirectoryService
slug: Mozilla/Tech/XPCOM/Reference/Components/nsDirectoryService
tags:
  - Components
  - 'Components:Frozen'
  - XPCOM
  - XPCOM API Reference
translation_of: Mozilla/Tech/XPCOM/Reference/Components/nsDirectoryService
---
<p>« <a href="/ja/docs/XPCOM_API_Reference">XPCOM API Reference</a></p>

<h3 id=".E8.A6.81.E7.B4.84" name=".E8.A6.81.E7.B4.84">要約</h3>

<p>XPCOM ディレクトリサービス。このサービスは、OS 固有のマナーで "よく知られた" ディレクトリの場所を返します。例えば、システムの一時ディレクトリやデスクトップディレクトリ、現在の作業ディレクトリなどのパスを提供します。</p>

<dl>
 <dt>Class ID</dt>
 <dd><code>f00152d0-b40b-11d3-8c9c-000064657374</code></dd>
 <dt>ContractID</dt>
 <dd><code>@mozilla.org/file/directory_service;1</code></dd>
</dl>

<h3 id=".E3.82.B5.E3.83.9D.E3.83.BC.E3.83.88.E3.81.95.E3.82.8C.E3.81.9F.E3.82.A4.E3.83.B3.E3.82.BF.E3.83.95.E3.82.A7.E3.83.BC.E3.82.B9" name=".E3.82.B5.E3.83.9D.E3.83.BC.E3.83.88.E3.81.95.E3.82.8C.E3.81.9F.E3.82.A4.E3.83.B3.E3.82.BF.E3.83.95.E3.82.A7.E3.83.BC.E3.82.B9">サポートされたインタフェース</h3>

<p><code><a href="ja/NsIProperties">nsIProperties</a></code>, <code><a href="ja/NsIDirectoryService">nsIDirectoryService</a> </code></p>

<h3 id=".E3.82.B3.E3.83.A1.E3.83.B3.E3.83.88" name=".E3.82.B3.E3.83.A1.E3.83.B3.E3.83.88">コメント</h3>

<p>このコンポーネントは、単独で使用するか、XPCOM サービスマネージャを通してアクセスします。</p>

<h3 id=".E3.82.B3.E3.83.BC.E3.83.89.E4.BE.8B" name=".E3.82.B3.E3.83.BC.E3.83.89.E4.BE.8B">コード例</h3>

<pre>#include "nsXPCOM.h"
#include "nsCOMPtr.h"
#include "nsDirectoryServiceDefs.h"
#include "nsIServiceManager.h"
#include "nsIProperties.h"

/**
 * Get the location of the system's "temp" directory.
 */
nsresult GetTempDir(nsIFile **aResult)
{
  nsresult rv;

  nsCOMPtr&lt;nsIServiceManager&gt; svcMgr;
  rv = NS_GetServiceManager(getter_AddRefs(svcMgr));
  if (NS_FAILED(rv))
    return rv;

  nsCOMPtr&lt;nsIProperties&gt; directory;
  rv = svcMgr-&gt;GetServiceByContractID("@mozilla.org/file/directory_service;1",
                                      NS_GET_IID(nsIProperties),
                                      getter_AddRefs(directory));
  if (NS_FAILED(rv))
    return rv;

  rv = directory-&gt;Get(NS_OS_TEMP_DIR, NS_GET_IID(nsIFile), aResult);

  return rv;
}
</pre>

<p>NS_OS_TEMP_DIR は、他の多くの Directory Service キーと共に、<a class="external" href="http://lxr.mozilla.org/mozilla/source/xpcom/io/nsDirectoryServiceDefs.h">nsDirectoryServiceDefs.h</a> で定義されているので注意してください。</p>

<h3 id=".E5.8F.82.E8.80.83" name=".E5.8F.82.E8.80.83">参考</h3>

<p><a href="ja/Using_nsIDirectoryService">Using nsIDirectoryService</a>, <a href="ja/NsIProperties#get">nsIProperties::get</a>, <a href="ja/NsIDirectoryServiceProvider">nsIDirectoryServiceProvider</a></p>

<div class="noinclude"> </div>