2

当我使用 Box, Inc c# sdk 一次创建多个文件夹时,我遇到了一个 javascript 错误。我一直在使用一个由路径和字符串列表组成的类作为子目录的路径。但是,当我调用 CreateBoxFolders 方法时,它会随机引发参数计数不匹配异常。到目前为止,我无法确定原因。

    private void CreateBoxFolders(string dir, long boxfolderid)
    {
        string[] dirnames = dir.Path.Split('\\');

        CreateBoxFolder(dirnames[dirnames.Count() - 1], boxfolderid);

        long id = GetFolderId(dirnames[dirnames.Count() - 1], boxfolderid);

        // This is a class with a list that stores the folder structure and path 
        dir.ChildDirectories.ForEach(x =>
            CreateBoxFolders(x, id));
    }

    private void CreateBoxFolder(string name, long parent)
    {
        _BoxManager.CreateFolder(name, parent, false);
    }


    private long GetFolderId(string name, long parent)
    {
        var folders = _BoxManager.GetFolderStructure(parent,
                  BoxSync.Core.Primitives.RetrieveFolderStructureOptions.OneLevel);
        long number = folders.Folder.Folders.Where(x => x.Name == name.Trim()).First().ID;
        return number;
    }
4

1 回答 1

0

我怀疑您的数组之一为空或为空。

long id = GetFolderId(dirnames[dirnames.Count() - 1], boxfolderid);

此行可能在某些时候使用 id=0 的根文件夹。文件夹 0 是位于您帐户根目录的虚拟文件夹,没有任何目录结构。因此它是根。我怀疑(不是 C# 程序员)这是评估到

long id = ...(emptyarray[emptyarray.Count() -1], ... 

我怀疑空数组的计数可能为空或零。空会很糟糕......

于 2012-08-30T16:36:37.020 回答