如果sharepoint文档库中不存在目录和子目录,如何创建该目录和子文件夹

本文关键字:创建 文件夹 何创建 子目录 文档 sharepoint 不存在 如果 | 更新日期: 2023-09-27 18:00:27

我有一个用户输入D:'Test1'Test2'Test3'Test4'a'b'c'd'file.jpg,根据用户输入,我需要检查文档库中是否存在文件夹和子文件夹。

DocLib>>Test1>>Test2….d我想复制文档库中的文件夹结构,如果它存在,则直接读取并保存文件,否则创建目录和子目录,直到文件应该保存的级别。

有人能帮我理解我该怎么做吗?我尝试在硬盘上的本地系统中创建文件

static void CopyFolder(string sourceFolder, string destFolder)
        {
            if (!Directory.Exists(sourceFolder))
                Directory.CreateDirectory(destFolder);
            string[] files = Directory.GetFiles(sourceFolder);
            foreach (string file in files)
            {
                string name = Path.GetFileName(file);
                string dest = Path.Combine(destFolder, name);
                File.Copy(file, dest);
            }
            //check folder in the source destination
            string[] folders = Directory.GetDirectories(sourceFolder);
            foreach (string folder in folders)
            {
                string name = Path.GetFileName(folder);
                string dest = Path.Combine(destFolder, name);
                System.IO.Directory.CreateDirectory(dest);
                CopyFolder(folder, dest);
            }
        }

不知道如何检查目录是否存在,然后检查sharepoint中的子目录。即通过保留指定的文件夹结构来添加文件。请帮助

如果sharepoint文档库中不存在目录和子目录,如何创建该目录和子文件夹

要做到这一点,您需要逐个创建树路径的结构:以下是一个简短的代码,说明如何在根站点上使用UserDocument文件夹作为根文件夹:

            // This will contain all information about the path
            DirectoryInfo infoDir = new DirectoryInfo(@"C:'Users'Administrator'Pictures2'WallPaperHD - 078.jpg");
            // Root folder passed => Default in SharePoint
            if (infoDir.Parent != null)
            {
                // All folders are stored here
                List<string> folders = new List<string>();
                // Set current folder to parent
                DirectoryInfo currentDir = infoDir.Parent;
                do
                {
                    // Add its name to array
                    folders.Add(currentDir.Name);
                    // Set parent of current as current if available
                    if (currentDir.Parent != null)
                        currentDir = currentDir.Parent;
                }
                while (currentDir.Parent != null);
                // Add SP structure)
                using (SPSite site = new SPSite("http://testsite.dev"))
                {
                    SPWeb web = site.RootWeb;
                    // Get doc library
                    SPList documentLibrary = web.GetList("/UserDocuments");
                    // If library root exists
                    if (documentLibrary != null)
                    {
                        string folderUrl = "/UserDocuments/";
                        for (int i = folders.Count - 1; i >= 0; i--)
                        {
                            string folder = folders[i];
                            SPFolder newFolder = site.RootWeb.GetFolder(folderUrl + folder);
                            if (!newFolder.Exists)
                            {
                                site.RootWeb.Folders.Add(folderUrl + folder);
                                // Save changes
                                site.RootWeb.Update();
                                folderUrl += folder + "/";
                            }
                        }
                    }
                }
            }

这将在SharePoint端创建与用户传递的路径中指定的文件夹结构相同的文件夹结构。

之后,您只需要将文件保存在指定的文件夹中。

希望有帮助,

Andrew