これで、PC でエクスプローラーを使用して、SP サーバー上の場所 (場所: http://sp.myhost.com/site/Documents/ ) を開くことができます。そこから、たとえば C:\ ドライブからファイルをコピーして貼り付けることができます。
プログラムでコピー プロセスを複製する必要があります。FileCopy() はそれを行いません - http:// ビットが問題を引き起こしているようです!
これで、PC でエクスプローラーを使用して、SP サーバー上の場所 (場所: http://sp.myhost.com/site/Documents/ ) を開くことができます。そこから、たとえば C:\ ドライブからファイルをコピーして貼り付けることができます。
プログラムでコピー プロセスを複製する必要があります。FileCopy() はそれを行いません - http:// ビットが問題を引き起こしているようです!
サーバーはWebDAVアクセスを許可していますか? はいの場合、 Indy 10を含む、利用可能な Delphi 用の WebDAV クライアントがあります。
BLOBストレージを使用していない場合、すべてのSharePointファイルはBLOBオブジェクトとしてデータベースに保存されます。
エクスプローラーでファイルにアクセスするときは、SharePoiontからファイルを読み取ってレンダリングするWindowsサービスを使用しています。このようにして、SharePointに手動でダウンロードするとすぐにコピーして貼り付けることができます。
これを自動的に実行できるようにするには、次のSPAPIコードを使用してこれを達成する必要があります。
using (SPSite site = new SPSite("http://testsite.dev"))
{
using (SPWeb web = site.OpenWeb())
{
using (FileStream fs = File.OpenRead(@"C:\Debug.txt"))
{
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, (int) fs.Length);
SPList list = web.GetList("Lists/Test AAD");
SPFile f = list.RootFolder.Files.Add("/Shared Documents/"+Path.GetFileName(fs.Name), buffer);
}
}
}
これにより、ディスクCから読み取られた「共有ドキュメント」ライブラリに新しい「Debug.txt」ファイルが追加されます。各ファイルに対してこれを行うには、フォルダ内の各ファイルをループするだけです。Webを開くことができるのは一度だけで、ファイルを追加するたびにループを実行できます...
それが役に立てば幸い、
アンドリュー