2012-03-19 2 views
1

SharePoint Mapped Folder StructureXmlリーダーを作成するためのSharePointマッピングフォルダでXMLファイルにアクセスするにはどうすればよいですか?

私は、このコードを使用して、SharePointマッピングフォルダの下の特定のXMLにアクセスしました。

XmlReader reader = XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream( string.Format("{0}\\{1}", SPUtility.GetGenericSetupPath("TEMPLATE\\ADMIN\\AIP_RefinementPanel"), "CustomFilterCategoryDefinition.xml")));

しかし、私は、展開中にエラーが発生しました。このコードは、このXMLファイルにアクセスするためには機能しません。どうすれば私の不具合を修正できますか?あなたのXmlファイルのURLを知っている(そしてそれは、カスタムWSPとXMLファイルは、いくつかのマップされた仮想フォルダに展開されていますので、あなたはそれを知っている)場合

はそれを取得する方が良いでしょう

MKacar、

+0

リソースの実際の名前は何ですか?なぜ物理ファイルへのパスを引数として提供しようとしているのかは不明です... –

答えて

3

GetManifestResourceStreamへの呼び出しを省略すると、コードが機能するはずです。私はあなたのアセンブリに埋め込まれたリソースではなく、ファイルシステムからファイルを読みたいと思います。

string templatePath = SPUtility.GetGenericSetupPath("TEMPLATE"); 
string xmlPath = Path.Combine(templatePath, @"ADMIN\AIP_RefinementPanel\CustomFilterCategoryDefinition.xml"); 
XmlReader reader = XmlReader.Create(xmlPath); 

--- Ferda

3

をありがとうローカルファイルシステムのファイルパスをXmlReaderに渡します。これは、必要な権限のためにUrlで失敗する可能性があるためです。

私は「レイアウト」に展開され、いくつかのXMLとXSLTファイルを含むプロジェクトフォルダ

enter image description here

をマッピングし、私は次のように

var configDirPath = HttpContext.Current.Server.MapPath("/_layouts/LMUI/Configuration"); 
var configFilePath = configDirPath + "\\" + "Config.xml"; 

をConfig.xmlファイルへのアクセス権を持っている。例えば

詳細については、HttpContext.Current.Server.MapPath http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspxのMSDNドキュメントをお読みください。

+1

これは、SPモジュールによってマッピングされたURLを介してアクセス可能なファイルで、コードがHTTPコンテキストで実行されている場合にのみ機能します。前者をファイルの巧妙な配備によって保証することはできますが、後者の場合は可能ではないかもしれません - ワークフローやPSコマンドレットなどでコードを使用することができます* SPUtility.GetGenericSetupPath *はすべてのローカルパスを提供しますシナリオ。 --- Ferda –

関連する問題