2012-11-15 42 views
5

sdcardにフォルダとファイルを作成する際に問題があります。作成されたフォルダがファイルエクスプローラに表示されません。

File folder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString() + "/folder"); 
    boolean success; 
    if (!folder.exists()) { 
     success = folder.mkdirs(); 
    } 
    File obdt = new File(folder, "file.txt"); 
    try { 
     success = obdt.createNewFile(); 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

私はSDカードのDownloadフォルダ内のフォルダfolderを作成することを期待し、このコードでは、このファイルfileで:

は、ここでは、コードです。私は、ユーザーがファイルにアクセスできるようにしたい。だから私はそれを共有フォルダに入れたいと思う。
success変数はtrueです。コードをもう一度実行すると、フォルダは既に存在し、ifブロックには入りません。
しかし、作成したフォルダとファイルは、ファイルエクスプローラのsdcardには表示されません。

情報:getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString()戻りstorage/sdcard/Download

私はギャラクシーネクサスで動作します。

+0

何か例外がありますか?もし 'success'を' false'の値で初期化すればどうでしょうか? – dumbfingers

+0

いいえ例外はありません...初期化されていないと成功はfalseです –

+0

"storage/sdcard/Download"フォルダを見つけることができますか? –

答えて

2

くそー! :)

私は私の問題を解決しました...私はファイルシステムでファイルを作成する操作を誤解していました。
私がファイルエクスプローラを話したとき、私はオペレーティングシステムのファイルエクスプローラを意味し、DDMSのファイルエクスプローラは意味しません:)。
私はファイルを作成するときにオペレーティングシステムのファイルエクスプローラで見ることができますが、デバイスがPCに接続されているときにはファイルはDDMSファイルエクスプローラでしか見ることができません。アプリケーションはPCに接続せずにスタンドアロンで動作していると私は、私はもちろん:)助けを

感謝の作成したファイルやフォルダを参照してくださいPCと接続し、その後)

;私は、Androidに新たなんだ申し訳ありません

0

まだ行っていない場合は、アプリマニフェストに以下の行を追加してSDカードに書き込むための適切なアクセス許可を与える必要があります:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

あなたがすでに行っている場合次の場合を参照してください:

File obdt = new File(/sdcard/folder/file.txt) 
try { 
    success = obdt.createNewFile(); 
} catch (IOException e1) { 
    e1.printStackTrace(); 
} 

作品。

+0

すでに完了しました –

+0

@TobiWeißhaar編集 –

+0

ファイルの作成obdt = new File( "/ sdcard/file.txt");成功しましたが、ファイルエクスプローラでは表示されません.- –

0

logcatのエラーはありますか?
その他:Log.I( "PATHNAME"、folder.absolutePath())のようなものを試してください。そしてあなたのlogcatを見て、あなたが思っているフォルダをどこに作成しているのかを確認してください。

+0

パス:/ storage/sdcard0/Download/folder –

0

これを試してください。

 File dir = new File(Environment.getExternalStorageDirectory() 
       + "/XXX/Wallpapers/"); 
     File[] files = dir.listFiles(); 

     if (files == null) 

     { 
      int numberOfImages = 0; 
      BitmapDrawable drawable = (BitmapDrawable) imageView 
        .getDrawable(); 
      Bitmap bitmap = drawable.getBitmap(); 
      File sdCardDirectory = Environment 
        .getExternalStorageDirectory(); 
      new File(sdCardDirectory + "/XXX/Wallpapers/").mkdirs(); 
      File image = new File(sdCardDirectory 
        + "/XXX/Wallpapers/Sample" + numberOfImages + ".JPG"); 

      boolean success = false; 
      FileOutputStream outStream; 
      try { 
       outStream = new FileOutputStream(image); 
       bitmap.compress(Bitmap.CompressFormat.JPEG, 100, outStream); 
       outStream.flush(); 
       outStream.close(); 
       success = true; 
      } catch (FileNotFoundException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 

      } 
      if (success) { 
       Toast.makeText(
         getApplicationContext(), 
         "Image saved successfully in Sdcard/XXX/Wallpapers", 
         Toast.LENGTH_LONG).show(); 
      } else { 
       Toast.makeText(getApplicationContext(), 
         "Error during image saving", Toast.LENGTH_LONG) 
         .show(); 
      } 

いけないあなたは、エクスプローラでフォルダ/ファイルを見ることができませんマニフェスト

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
+0

イメージがSdcard/XXX/Wallpapersに正常に保存されました。ファイルを再実行すると!= nullで、ifブロックには入りません。ファイルエクスプローラ私はフォルダと画像が表示されません! -.- –

+0

あなたはファイルエクスプローラでそこに見ることができるほかにも、あなたのモバイル/デバイスでそれを実行しようとするものは間違いありません –

0

に権限を追加することを忘れ? MediaScannerがアクティブで、ファイルを追加していない可能性があります。プログラムでこれを行うか、電話機の設定のどこかでMedia Scannerを切り替えることができます。

MediaScanner

Trigger MediaScanner

0

明らかにMTPには既知のバグがあります。

Issue 195362 USBマスストレージの代わりにMTPを使用するすべての電話機は、USBケーブルを使用してその電話機がコンピュータに接続されているときにファイルのリストを正しく表示しません。デバイス上で実行されているAndroidアプリもこれらのファイルを見ることはできません。

実際には2012年と同じくらいです

関連する問題