2

これで、PC でエクスプローラーを使用して、SP サーバー上の場所 (場所: http://sp.myhost.com/site/Documents/ ) を開くことができます。そこから、たとえば C:\ ドライブからファイルをコピーして貼り付けることができます。

プログラムでコピー プロセスを複製する必要があります。FileCopy() はそれを行いません - http:// ビットが問題を引き起こしているようです!

4

2 に答える 2

1

サーバーはWebDAVアクセスを許可していますか? はいの場合、 Indy 10を含む、利用可能な Delphi 用の WebDAV クライアントがあります。

于 2013-02-11T09:22:08.247 に答える
0

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を開くことができるのは一度だけで、ファイルを追加するたびにループを実行できます...

それが役に立てば幸い、

アンドリュー

于 2013-02-11T07:28:23.567 に答える