コード例 #1
0
        public static ExplorerNode GetListFileFolder(ExplorerNode node)
        {
            DropboxRequestAPIv2 client = GetAPIv2(node.GetRoot.NodeType.Email);

            IDropbox_Response_ListFolder response = client.ListFolder(new Dropbox_Request_ListFolder(node.GetFullPathString(false)));

            node.Child.Clear();
            foreach (IDropbox_Response_MetaData metadata in response.entries)
            {
                if (metadata.tag == "folder")
                {
                    new ExplorerNode(
                        new NodeInfo()
                    {
                        Name = metadata.name, Size = -1, ID = metadata.id
                    }, node);
                }
            }

            foreach (IDropbox_Response_MetaData metadata in response.entries)
            {
                if (metadata.tag == "file")
                {
                    new ExplorerNode(
                        new NodeInfo()
                    {
                        Name = metadata.name, Size = metadata.size, ID = metadata.id, DateMod = DateTime.Parse(metadata.client_modified)
                    }, node);
                }
            }
            return(node);
        }
コード例 #2
0
        public static string AutoCreateFolder(ExplorerNode node)
        {
            if (node.Info.Size > 0)
            {
                throw new Exception("Node is file.");
            }
            DropboxRequestAPIv2 client = GetAPIv2(node.GetRoot.NodeType.Email);

            try
            {
                Monitor.Enter(sync_CreateFolder);

                List <ExplorerNode> pathlist = node.GetFullPath();
                int i;
                for (i = 1; i < pathlist.Count; i++)
                {
                    try
                    {
                        client.ListFolder(new Dropbox_Request_ListFolder(pathlist[i].GetFullPathString(false)));
                    }
                    catch (HttpException ex)
                    {
                        if (ex.ErrorCode == 409)
                        {
                            break;
                        }
                        throw ex;
                    }
                }
                for (; i < pathlist.Count; i++)
                {
                    client.create_folder(new Dropbox_path(pathlist[i].GetFullPathString(false)));
                }
                return(pathlist[i - 1].GetFullPathString(false));
            }
            finally { Monitor.Exit(sync_CreateFolder); }
        }