8

お客様の一人が再現できない問題を抱えています。SPFile.Propertiesを使用して、プログラムでドキュメントのプロパティを宛先ファイルにコピーします。ただし、何らかの理由で、ファイルのプロパティが、ファイルが保存されているリストで指定されているメタデータと一致しません。

これで、SPFile.Item.Properties(まだテストされていません)をコピーすることでこれを解決できる可能性がありますが、どのような状況でSPFile.PropertiesがSPFile.Item.Propertiesと等しくないのか疑問に思っています。

更新:お客様から更新を受け取りました。SPFile.Item.Propertiesを使用すると、常に最新の情報が返されます。ただし、元の質問についてはまだ理解したいと思います。

4

4 に答える 4

7

SPFile.Propertiesとフィールドの間にはわずかな違いがSPFile.Itemあり、最初のフィールドは呼び出すのがはるかに遅くなります。

おそらく、Microsoft Officeドキュメントの「プロパティ」ウィンドウ(これはhttp://dradisframework.org/images/tutorial/custom_document_properties.png)を見たことがあるでしょう。これらは、にアクセスしたときに読み取られるプロパティですSPFile.Properties。バイナリDOCファイルを解析してプロパティを見つけるコードインフラストラクチャがあるため、それらの読み取りは遅くなります。(プロパティへのアクセスごとに最大30ミリ秒かかります)詳細については、http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfile.properties.aspxを参照してください。

SharePointでは、すべてのアイテムがでありSPListItem、そのフィールド値(ここでは意図的に「プロパティ」という単語を使用しません)はSharepointのコンテンツデータベースに格納されます。したがって、にアクセスすると、ファイルが添付されているファイルSPFile.Item.Propertiesを実際に確認し、SPListItemSharePointのコンテンツデータベースからそのプロパティを確認します。

いくつかの「Officeプロパティ」が設定されているファイルをアップロードすると、SharePointがそれらをの同じ名前のフィールドにコピーするという舞台裏で起こりますSPListItem。(ここでそれに関するいくつかの情報:http ://weblogs.asp.net/bsimser/archive/2004/11/22/267846.aspx )

これが、これらのプロパティが通常同じ値を持つ理由ですが、SharePointがファイルからメタデータを読み取り、書き戻す方法を知っている場合にのみ発生します。そのため、.txtSharePointストアにファイルを配置しても、元に戻すことはできませんSPFile.Properties

于 2010-01-07T16:02:59.353 に答える
1

ユーザーには、ドキュメントライブラリのSPFileプロパティではなく、常にListItemプロパティが表示されます。したがって、コピーでListItemプロパティを使用するのが方法です。

于 2009-09-09T16:03:21.003 に答える
1

この問題は、ドキュメントのプロパティを物理的なMSOfficeファイルに埋め込んで、クライアントなどに移動できるSharepointプロパティの昇格/降格機能に関連していると思います。ただし、これは現在Officeファイルタイプでのみサポートされています(私の知る限り) 。

ジョナサン

于 2011-08-15T15:49:57.240 に答える
0

Sharepointの「公式に文書化された」ものを見つけようとすることは、ほとんど元に戻せません。:-D。オンラインドキュメントは最悪です。ブログエントリなどを使用する方が良いでしょう。

PS私はここでアレックスに同意します。SPFileがSPListItemを伴わずにリストに存在することはありませんが、2つの間の接続が破損する可能性があります(つまり、リストアイテムを編集できても、ファイルを開くことができません)。これは、2に関する情報がコンテンツデータベースのさまざまな場所に保存されていることを示しています。私は以前にこれが起こったことがあります。

于 2009-09-07T19:10:28.433 に答える