質問するログイン新規登録

質問編集履歴

1

補足

2015/12/21 10:39

投稿

hsk
hsk

スコア728

title CHANGED
File without changes
body CHANGED
@@ -1,5 +1,5 @@
1
1
  お世話になっております。
2
- Mozillaアプリケーションのアドオンを作成しています
2
+ Mozillaアプリケーションのアドオンを作成しています(Windows 7 professional で開発)
3
3
  Windowsファイル共有フォルダ (\\fileserver\folder\) があり、file://fileserver/folder/filename と指定して共有フォルダ内のファイルに XULRunner 上の JavaScript からアクセスしようとしてます。
4
4
 
5
5
  ```js
@@ -10,7 +10,7 @@
10
10
  let f2 = fph.getFileFromURLSpec("file://fileserver/folder/");
11
11
  ```
12
12
 
13
- 上記コードで、f1 はエラーにならずにnsIFileオブジェクトを取得できるのですが、f2 はエラーになります。
13
+ 上記コードで、f1 はエラーにならずに [nsIFile](https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM/Reference/Interface/nsIFile) オブジェクトを取得できるのですが、f2 はエラーになります。
14
14
 
15
15
  例外の内容は
16
16
  "Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsIFileProtocolHandler.getFileFromURLSpec]" (String)
@@ -21,4 +21,11 @@
21
21
  このエラーの原因は何なのでしょうか?
22
22
  上記コードの結果から、ドライブパスから指定する方法でないと UNRECOGNIZED_PATH になってしまうように考えられるのですが(file://localhost/c$/windows/system32/ もだめでした)、何か別の手順が必要だったりするのでしょうか?
23
23
 
24
+ ちなみに、次のコードのように nsIFile オブジェクトを生成してUNCでパス指定をする方法は(リモートフォルダであっても)成功します。しかしこれは windows だから成功したことであって、Linux や Macintosh 上の Mozilla アプリケーションでは失敗するでしょう。
25
+ ```js
26
+ let f = Components.classes["@mozilla.org/file/local;1"]
27
+ .createInstance(Components.interfaces.nsIFile);
28
+ f.initWithPath("\\\\fileserver\\folder\\");
29
+ ```
30
+
24
31
  ご存知の方、ご教示のほどお願い致します。