MKDIRに失敗しました:EBUSY(デバイスまたはリソースビジー) -- android フィールド 関連 問題

mkdir failed: EBUSY (Device or resource busy)












0
vote

問題

日本語

私はこのような内部SDのクレイテットの新しいフォルダに書かれたコードを書かれています...

<事前> <コード> File MainDirectory = new File("/mnt/sdcard/app/"); if(!MainDirectory.exists()){ File DBDirectory = new File("/mnt/sdcard/app/database"); File ProPicDirectory = new File("/mnt/sdcard/app/profilephoto"); File ProPicTempDirecctory=new File("/mnt/sdcard/app/profilephoto/temp"); File ReportPicDirectory = new File("/mnt/sdcard/app/reportphoto"); File ReportThumbPicDirectory = new File("/mnt/sdcard/app/reportphoto/thumb"); MainDirectory.mkdirs(); DBDirectory.mkdir(); ProPicDirectory.mkdir(); ProPicTempDirecctory.mkdir(); ReportPicDirectory.mkdir(); ReportThumbPicDirectory.mkdir(); }

このコードは、ファイルマネージャを介してフォルダを削除してアプリを削除しても、1回ずつ3回動作し、アプリを再インストールしたときに正しく機能しました。 3回目のこのエラーが発生した後....

<事前> <コード> I/System.out: mkdir failed: EBUSY (Device or resource busy) path = /mnt/sdcard/app I/System.out: mkdir failed: EBUSY (Device or resource busy) path = /mnt/sdcard/app/database I/System.out: mkdir failed: EBUSY (Device or resource busy) path = /mnt/sdcard/app/profilephoto I/System.out: mkdir failed: EBUSY (Device or resource busy) path = /mnt/sdcard/app/profilephoto/temp I/System.out: mkdir failed: EBUSY (Device or resource busy) path = /mnt/sdcard/app/reportphoto I/System.out: mkdir failed: EBUSY (Device or resource busy) path = /mnt/sdcard/app/reportphoto/thumb

この問題を解決する方法は?

英語

I ve written code to craete new folders in internal sd like this...

File MainDirectory = new File("/mnt/sdcard/app/");     if(!MainDirectory.exists()){         File DBDirectory = new File("/mnt/sdcard/app/database");         File ProPicDirectory = new File("/mnt/sdcard/app/profilephoto");         File ProPicTempDirecctory=new File("/mnt/sdcard/app/profilephoto/temp");         File ReportPicDirectory = new File("/mnt/sdcard/app/reportphoto");         File ReportThumbPicDirectory = new File("/mnt/sdcard/app/reportphoto/thumb");           MainDirectory.mkdirs();         DBDirectory.mkdir();         ProPicDirectory.mkdir();         ProPicTempDirecctory.mkdir();         ReportPicDirectory.mkdir();         ReportThumbPicDirectory.mkdir();     } 

This code worked perfectly on two three times, even when i delete the the folders via file manager and deleteting the app , when i reinstalled it worked correctly. After the third time this error occurs....

I/System.out: mkdir failed: EBUSY (Device or resource busy) path = /mnt/sdcard/app I/System.out: mkdir failed: EBUSY (Device or resource busy) path = /mnt/sdcard/app/database I/System.out: mkdir failed: EBUSY (Device or resource busy) path = /mnt/sdcard/app/profilephoto I/System.out: mkdir failed: EBUSY (Device or resource busy) path = /mnt/sdcard/app/profilephoto/temp I/System.out: mkdir failed: EBUSY (Device or resource busy) path = /mnt/sdcard/app/reportphoto I/System.out: mkdir failed: EBUSY (Device or resource busy) path = /mnt/sdcard/app/reportphoto/thumb 

How can i resolve this issue.?

</div
  
         
         

回答リスト

0
 
vote

Environment.getExternalStorageDirectory() を使用してみてください。

<事前> <コード> File MainDirectory = new File(Environment.getExternalStorageDirectory().toString()+ "/app"); if(!MainDirectory.exists()){ File DBDirectory = new File(MainDirectory+"/database"); File ProPicDirectory = new File(MainDirectory+"/profilephoto"); File ProPicTempDirecctory = new File(ProPicDirectory+"/temp"); File ReportPicDirectory = new File(MainDirectory+"/reportphoto"); File ReportThumbPicDirectory = new File(ReportPicDirectory+"/thumb"); MainDirectory.mkdirs(); DBDirectory.mkdir(); ProPicDirectory.mkdir(); ProPicTempDirecctory.mkdir(); ReportPicDirectory.mkdir(); ReportThumbPicDirectory.mkdir(); }

私にはうまく機能しています。

それが役立つことを願っています。

 

You can try using Environment.getExternalStorageDirectory().

 File MainDirectory = new File(Environment.getExternalStorageDirectory().toString()+ "/app");     if(!MainDirectory.exists()){         File DBDirectory = new File(MainDirectory+"/database");         File ProPicDirectory = new File(MainDirectory+"/profilephoto");         File ProPicTempDirecctory = new File(ProPicDirectory+"/temp");         File ReportPicDirectory = new File(MainDirectory+"/reportphoto");         File ReportThumbPicDirectory = new File(ReportPicDirectory+"/thumb");           MainDirectory.mkdirs();         DBDirectory.mkdir();         ProPicDirectory.mkdir();         ProPicTempDirecctory.mkdir();         ReportPicDirectory.mkdir();         ReportThumbPicDirectory.mkdir();     } 

It is working fine for me.

Hope it helps .

</div
 
 
         
         
0
 
vote

ストレージの書き込みと読み取りの権限があることを確認してください。

<事前> <コード> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

もう一度確認してください。

 

make sure you had the permissions of writing and reading storage.

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

check again.

</div
 
 
0
 
vote

だから、ファイルまたはディレクトリはシステムまたはその他のプロセスによってロックされています。

どうやってこの結論に来ましたか?

まあ、私のアプリケーションの前のビルドでは、データファイル(メディアファイルを含む)を含むルートディレクトリに隠しディレクトリを作成していました。それから私はそれを隠さないように決めました。突然私のテスト装置のすべてがクラッシュし始めました。フォルダを隠しに戻して再度処理しました。

だから、ディレクトリにアクセスするプロセスがない場合は、メディアファイルのAndroidシステムスキャンしてGoogleを作成していることがわかります。おそらく .nomedia ファイルはこれを修正することができます(私は試していませんでした)が、あなたが運営者をコントロールしていない場合は再びあなたが運の外にコントロールされていない場合は

 

So the thing is the file or directory is locked by the system or some other process.

How did I come to this conclusion?

Well, in the previous build of my application, I was creating a hidden directory at the root directory containing data files (including media files). Then I decided not to make it hidden. All of a sudden my test devices started crashing. I changed the folder back to hidden and it worked again.

So, if there isn't a process accessing the directory, it's probably the Android system scanning for media files and doing Google knows what. Perhaps a .nomedia file could fix this (I didn't try) but then again if you have no control over the resource you're out of luck.

</div
 
 

関連する質問

7  Androidブラウザのリンクでは、常にOnClickが原因として順に実行されない  ( In android browser link does not always execute onclick causing focus instead ) 
私はHREFを使ってリンクのための非常に標準のJSの動作をプログラムしようとしています オンクリックハンドラ、そして私は私がアンドロイドのフォーカス/タッチモードの動作であると信じるものによって引き起こされる奇妙な問題に直面しています。 作業を実行する代わりに...

1  FacebookはAndroid用に接続しています  ( Facebook connect for android ) 
私はAndroid用Facebook Connectのソリューションを探しています。 CodeCarpetからオープンソースソリューションを使用する前に、 http://code.google。 COM / P / FBCONECT-ANDROID / ...

3  強化現実感のためのふるいを使う  ( Using sift for augmented reality ) 
多くのARライブラリ/ SDKS / APIに遭遇しました。このビデオは、説明とコメントから、彼がオブジェクトを検出してそれに従ってください。 私はAndroidのためにそれをする必要があるので、純粋なJavaでのふるいの完全な実装が必要なのです。 私はそれを...

83  AndroidのHTMLを解析します  ( Parse html in android ) 
私はWebページからAndroidのHTMLを解析しようとしています、そしてそれが結機されていないウェブページから<コード> SAXException 。 AndroidのHTMLを解析する方法はありますか? ...

3  Androidビデオの意図:コントロールバックボタン?  ( Android video intent control back button ) 
意図を使って、ビデオを再生するAndroidアプリケーションに取り組んでいます。 <事前> <コード> tostart = new Intent(Intent.ACTION_VIEW); tostart.setDataAndType(Uri.parse(mov...

39  AndroidのListActivityでコンテキストメニューをどのように実装しますか?  ( How do you implement context menu in a listactivity on android ) 
LONGクリックでトリガーされたコンテキストメニューを実装しますか、組み込みレイアウトとListAdapterを使用しているListActivityをタップしますか? ...

2  Bluetoothchatはうまくいきません  ( Bluetoothchat doesnt work ) 
こんにちは私はAndroidデバイス間の会話をしたいです。私はBluetoothChatを使用してこれを行うのではありませんが、他のデバイスから正しくデータを読み取ることはできません。 会話は: Me:Privet 装置:P. 装置:リベット あなたは私...

59  EclipseをVisual Studioのように振る舞うようにする  ( Making eclipse behave like visual studio ) 
私はいくつかのAndroid開発をしています、そして私はビジュアルスタジオを好みますが、私はこれに eclipse を使う必要があります。 誰かが Eclipse 外観を作ることができるツールを作った、そしてVisual Studioのように見える?私は主にそ...

0  着信コールを無効にします  ( Disable incoming calls ) 
着信通話を無効にすることは可能です。 ...

10  Androidの内部とメモリ/プロセッサの制約は?  ( Android internals and memory processor constraints ) 
Android用スクリーンリーダーの作成を検討しています。私の質問は次のとおりです。 Androidの内部内部の量がJava APIを介して露出していますか?テキストが表示されているときにシステム全体の通知などのものを探しています。カーネルの送信元を変更し、...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有