Need to see if your shared folder is taking up space on your dropbox 👨💻? Find out how to check here.
Forum Discussion
JayPatel1992
8 years agoHelpful | Level 5
How to check folder exist or not and how to upload image using URL using C#
Hello there, I am using Dropbox.Api. I want to check if folder exist or not. I tired using try and catch block but I think there should be a better way for doing this. Here is my try catch block: ...
- 8 years ago
Didn't get much about SvaeUrlAsync but I used this and it worked perfectly.
List<Images> fiveElements = Images.GetRange(0, 5); foreach (var image in fiveElements) { WebClient webclient = new WebClient(); var stream = new MemoryStream(webclient.DownloadData(image.ImageURL)); var fileName = "Test1.jpg"; var response = await client.Files.UploadAsync(path + "/" + fileName, WriteMode.Overwrite.Instance, true, body: stream); }And for try catch I used your code but not working well as it throws me out of this method and goes to catch(Exception e) of parent method.
try { await client.Files.GetMetadataAsync(path); } catch (ApiException<Dropbox.Api.Files.GetMetadataError> e) { if (e.ErrorResponse.IsPath && e.ErrorResponse.AsPath.Value.IsNotFound) { Console.WriteLine("Nothing found at path."); } else { // different issue; handle as desired Console.WriteLine(e); } }Please let me know where I am going wrong.
Thank you. - 8 years ago
Thank you so much for the help. Using await and removing result worked for me.
try { await client.Files.GetMetadataAsync(path); } catch (ApiException<Dropbox.Api.Files.GetMetadataError> e) { if (e.ErrorResponse.IsPath && e.ErrorResponse.AsPath.Value.IsNotFound) { Console.WriteLine("Nothing found at path."); } else { // different issue; handle as desired Console.WriteLine(e); } }
JayPatel1992
8 years agoHelpful | Level 5
Thank you @Greg K. for the help. That's really quick.
As I am new to this coding stuff, it would be good if I have example for FilesUserRoutes.SaveUrlAsync Method which explains in detail.
And does the try block is good ? because I tired your catch block and it thows me out of the method and goes into catch(Exception e) of parent method.
Greg-DB
Dropbox Community Moderator
8 years agoI don't have a sample available for that unfortunately. The basic idea is to call SaveUrlAsync with the 'path' for where you want to save the file, and the 'url' for the hosted file data to save. Then, if the SaveUrlResult gives you an AsyncJobId, call SaveUrlCheckJobStatusAsync ocasionally to check on the job status.
Please give that a try and let me know if something isn't working as expected.
And yes, using the try/catch pattern is a good way to do that existence check.
- JayPatel19928 years agoHelpful | Level 5
Didn't get much about SvaeUrlAsync but I used this and it worked perfectly.
List<Images> fiveElements = Images.GetRange(0, 5); foreach (var image in fiveElements) { WebClient webclient = new WebClient(); var stream = new MemoryStream(webclient.DownloadData(image.ImageURL)); var fileName = "Test1.jpg"; var response = await client.Files.UploadAsync(path + "/" + fileName, WriteMode.Overwrite.Instance, true, body: stream); }And for try catch I used your code but not working well as it throws me out of this method and goes to catch(Exception e) of parent method.
try { await client.Files.GetMetadataAsync(path); } catch (ApiException<Dropbox.Api.Files.GetMetadataError> e) { if (e.ErrorResponse.IsPath && e.ErrorResponse.AsPath.Value.IsNotFound) { Console.WriteLine("Nothing found at path."); } else { // different issue; handle as desired Console.WriteLine(e); } }Please let me know where I am going wrong.
Thank you.- Greg-DB8 years ago
Dropbox Community Moderator
I think that's because you're using '.Result' instead of 'await'. That's more of a general C# exception handling matter though, so I can't provide much insight there. You'll probably need to change how you structure your exception handling, or switch to using 'await'.- JayPatel19928 years agoHelpful | Level 5
Thank you so much for the help. Using await and removing result worked for me.
try { await client.Files.GetMetadataAsync(path); } catch (ApiException<Dropbox.Api.Files.GetMetadataError> e) { if (e.ErrorResponse.IsPath && e.ErrorResponse.AsPath.Value.IsNotFound) { Console.WriteLine("Nothing found at path."); } else { // different issue; handle as desired Console.WriteLine(e); } }
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.
If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X, Facebook or Instagram.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!