0

UbuntuではisFile()isDirectory()完全に動作しません。私はこのコードを使用して、何かがファイルまたはディレクトリであるかどうかを調べました。

boolean fileName= file.getName().lastIndexOf('.') == -1;

しかし、問題は、という名前のフォルダーを作成したことbhargav.panchalです。上記の機能により、このフォルダはフォルダではなくファイルと見なされます。

File file=new File("/home/asd/My_Shared_File/bhargav.panchal");

if(file.exists()){
    if(!file.isDirectory()) {
        Toast.makeText(activity, "This is File", Toast.LENGTH_SHORT).show();
    } else {
        Toast.makeText(activity, "This is Directory", Toast.LENGTH_SHORT).show();
    }
} else {
    Toast.makeText(activity, "File or Directory doesn't exist.", Toast.LENGTH_SHORT).show();
}

この状態では、isDirectory()andisFile()メソッドは常にfalseを返します。

4

2 に答える 2

3

いいえ、どこか間違っています。逆にDVMで外部環境にアクセスすることはできません。

理由: OS レベルのセキュリティに基づいてアプリケーションが互いに干渉することは不可能であり、Dalvik VM は単一の OS プロセスに限定されているため、Dalvik 自体はランタイム セキュリティに関与していません。Dalvik はセキュリティに依存していませんが、標準の Java セキュリティ クラスのほとんどが Android ディストリビューションに残っていることに注意してください。これらには、java.lang.SecurityManager および java.security パッケージの一部のクラスが含まれます。標準の Java 環境では、SecurityManger は Android の OS プロセス レベル セキュリティに類似した役割を果たします。SecurityManager は通常、ファイル、プロセス、ネットワークなど、JVM の外部にあるリソースへのアクセスを制御します。. Android ディストリビューションでは、アプリケーションが内部で使用するための標準セキュリティ フレームワークが明らかに存在しますown application space、プロセス間セキュリティのために完全に実装も構成もされていません (java.policy ファイルは存在しません)。

于 2012-04-17T06:12:10.140 に答える
1

交換

       if(file.isDirectory()){
           Toast.makeText(activity, "This is File", Toast.LENGTH_SHORT).show();                    
       } else {
           Toast.makeText(activity, "This is Directory", Toast.LENGTH_SHORT).show();
       }

これについて

        if(!file.isDirectory()){
            Toast.makeText(activity, "This is File", Toast.LENGTH_SHORT).show();                    
        } else {
            Toast.makeText(activity, "This is Directory", Toast.LENGTH_SHORT).show();
        }
于 2012-04-09T13:07:31.530 に答える