5
$\begingroup$

I have version

"10.0 for Mac OS X x86 (64-bit) (September 10, 2014)"

I have several notebooks stored in the Wolfram cloud, but don't see how I can delete certain ones I no longer need.

$\endgroup$
  • $\begingroup$ Welcome to the Mathematica StackExchange. Don't forget to upvote good answers (and other people's questions) using the triangle above the number next to the post, and use the checkmark to "accept" the answer to your question that you think best answers it. Waiting 1 or 2 days before accepting is better because the best answers may not be the first ones. $\endgroup$ – andre314 Apr 10 '16 at 14:23
3
$\begingroup$

If you have a handle to the notebook (of the form CloudObject[...]), DeleteFile[CloudObject[...]] works. (see the documentation of DeleteFile).

To retrieve a handle you can do {#, CloudObjectInformation[#]} & /@ CloudObjects[Automatic, Notebook] (* CloudObjects[$CloudRootDirectory,Notebook]*) and choose according to the notebook name.

More precisely, to use the above code, first evaluate {#, CloudObjectInformation[#]} & /@ CloudObjects[Automatic, Notebook] , then you should have a list of notebooks. The Idea is to double-click on the CloudObject you want to delete to select it, to copy it (Control-C on Windows) and then to paste it (Control-V on Windows) in the code DeleteFile[ pasteYourCloudObjectHere ].
If you want to delete several files repeat the procedure.

The following is something more user frienfly :

It's a code that generate a user interface. First evaluate :

SetAttributes[myCheckbox, HoldFirst];
myCheckbox[choice_, elt_] := 
 Checkbox[Dynamic[MemberQ[choice, elt], 
   If[#, AppendTo[choice, elt], choice = DeleteCases[choice, elt]] &]]

list = {#, CloudObjectInformation[#]} & /@ 
   CloudObjects[Automatic, Notebook];

DynamicModule[{list1}, 
 Manipulate[
  Column[{Grid[
     Join[{{"select the\nfiles you want\nto delete", 
          "-"}}, #] &@({myCheckbox[choice, #[[1]]], #[[2]]} & /@ 
        list1), Alignment -> Left], 
    Button["delete selected files", DeleteFile /@ choice;
     list1 = {#, CloudObjectInformation[#]} & /@ 
       CloudObjects[Automatic, Notebook], 
     Method -> "Queued"]}], {choice, First /@ list1, None}, 
  Initialization :> (choice = {}; list1 = list)]
 ]

enter image description here

Select your files, then go to the bottom of the table and press the button "delete selected files"

When the button is pressed, a request to delete the files is sent in the cloud, a new list of notebooks is asked in the cloud (not in local cache), and the table is updated. That's the reason why it takes a little time to complete.

If the deletion of the file in the Cloud is delayed (there no garantee it is immediate), one can update the table by pressing the button.

$\endgroup$
  • $\begingroup$ I (naively) tried j39 = {#, CloudObjectInformation[#]} & /@ CloudObjects[Automatic, Adjust.nb] (* CloudObjects[$CloudRootDirectory,Adjust.nb] *) DeleteFile[CloudObject[j39]] but got $Failed. This all seems widely technical, while I was hoping for a simple intuitive one- or two-click procedure to clean up my files. $\endgroup$ – Paul B. Slater Apr 9 '16 at 14:18
  • $\begingroup$ There is a error in your code (there is an Adjust.nb instead of Notebook) $\endgroup$ – andre314 Apr 9 '16 at 16:34
  • $\begingroup$ @PaulB.Slater See update of my answer. It's hard to imagine a procedure with 2 click if you want to delete more than 2 files, except if you want to delete all files. And very often, there's a need to manage a hierarchy of files. $\endgroup$ – andre314 Apr 9 '16 at 21:28
  • $\begingroup$ The user-interface code that was suggested by Andre worked fine!!!!! $\endgroup$ – Paul B. Slater Apr 9 '16 at 22:55
  • $\begingroup$ I recently had a downvote on this answer without explanation. Maybe the reason is that the answer is now obsolete. To be confirmed. $\endgroup$ – andre314 May 16 at 18:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.