title: How to access files under /sdcard/Download in Android 11 without SAF?
body: <p>I am attempting to copy a file URI that is in any of the directories outside of android/data (which is obviously private except for my app's own directory).</p>
  <p>This is what I already have:</p>
  <ol>
  <li><p>In my manifest I have READ_EXTERNAL_STORAGE enabled</p>
  </li>
  <li><p>I have a list of files in, say, /sdcard/Download that the user <strong>does not</strong> go through a file dialog to pick. So SAF is out of the question.</p>
  </li>
  <li><p>I first check whether a file exists via</p>
  <pre><code>//inURL of format /sdcard/Download/ or /sdcard/custom_folder 
  var file = File(inURL)
  
  //This outputs &quot;true&quot; with example directory /sdcard/Download/my_collection
  Log.i(TAG, &quot;File exists? ${file.exists()}&quot;)
  
  if (file.exists())
  {
    //outURL is my app's scoped storage under android/data/...
    file.copyRecursively(inURL, outURL)
  }
  
  </code></pre>
  </li>
  </ol>
  <p>Where inURL (/sdcard/Download/my_collection) contains a mix of folders and files. However, this only copies the folders over, and not the files. Calling:</p>
  <pre><code>file.list().forEach{Log.i(TAG, it)}
  </code></pre>
  <p>Reveals that this only picks up the folders, and not my various files (mix of json and javascript files). How am I supposed to do this?</p>
  <p><strong>Note: Do not suggest enabling legacy storage because it's no longer possible in sdk level 30, plus it's terrible practice to keep doing it anyways. The sooner we do it the way google wants the better.</strong></p>