title: Android App Saves to 'Emulated' Storage Instead Of Actual Directory
body: <p>I'm attempting to save a JSON string to a file on the 'External' storage. Specifically the Documents folder. This would should be the storage you could access with a file browser, from gmail, or over USB on your computer.</p>
  
  <p>So I followed the documentation <a href="https://developer.android.com/training/basics/data-storage/files.html#WriteExternalStorage" rel="nofollow noreferrer">here</a> and came up with this: (note, changed to now create directory first, then append filename. Save now attempts to use MediaScanner)</p>
  
  <pre><code>public static File GetDocumentsPath(String tuningName) {
      // Get the directory for the user's public pictures directory.
      File dir = new File(Environment.getExternalStoragePublicDirectory(
              Environment.DIRECTORY_DOWNLOADS).getAbsolutePath());
      if (!dir.mkdirs()) {
          Logy.CallPrint("JSONTuning", "Directory not created");
      }
  
      File outFile = new File(dir, tuningName);
  
      return outFile;
  }
  
  public static String SaveTuning(Context context, String fileName, String json)
  {
      File path;
      if(fileName.contains(".rfts")) {
          path = GetDocumentsPath(fileName);
      } else {
          path = GetDocumentsPath(fileName+".rfts");
      }
  
  
      Logy.Print("|||||||||||||||| "+path.getPath());
  
      try {
          FileOutputStream fileOut = new FileOutputStream(path);
          ObjectOutput strOut = new ObjectOutputStream(fileOut);
          strOut.writeUTF(json);
          strOut.close();
          fileOut.close();
  
          MediaScannerConnection scanner = new MediaScannerConnection(context, null);
          scanner.connect();
          if(scanner.isConnected())
              scanner.scanFile(path.getPath(), null);
          scanner.disconnect();
  
          return "Save Successful";
      }
      catch(java.io.IOException e) {
          return e.getMessage();
      }
  }
  </code></pre>
  
  <p>So I logged the path I was getting from GetDocumentsPath.
  That path would be: /storage/emulated/0/Download/Test.rfts</p>
  
  <p>This does not lead to the file being saved in Documents as far as what I can access via file manager/computer. The fact that the word "emulated" is in there leads me to believe Environment isn't giving me the actual path at all.</p>
  
  <p>I do get the error "/storage/emulated/0/Documents/Test.rfts: open failed: ENOENT (No such file or directory)"</p>
  
  <p>What's needed to get the correct path, and save to, the documents folder in external storage?</p>
  
  <p>As a side note, the way I write the file works perfectly fine for internal storage, as I'm having no issues creating a file with app settings.</p>