私は、フォルダに保存されているすべてのファイルの情報を一覧表示するプログラムを実行しています。アクセスが拒否されました - ファイルのプロパティを取得しますか?
ファイルのプロパティを取得したい(私にとって最も重要なのはファイルサイズですが、変更日などの他のプロパティも取得したいと思います)。
私の問題は、別のプログラムで実際に使用されているファイルにアクセスしたときに、ファイルのBasicFileAtrributtes
を取得できないということです。私はFile
、URL
、RandomFileAcces
を使用しようとしたが、これらのrequieseのすべてのファイルを開く、とのような例外をスローする:
java.io.FileNotFoundException: C:\pagefile.sys (Access is denied)
は、この特性を得るために、Javaのいずれかのオプションがありますか?私はアプリケーションの小さなサイズを維持するために、余分なライブラリを使用しないことを好む。
アプリはJava JRE7に基づいています。
私はjava.nio.file.SimpleFileVisitor
を使用してすべてのファイルを閲覧しています。これは私のためだけで正常に動作
@Override
public FileVisitResult visitFileFailed(Path file, IOException exc){
FileInfo temp=new FileInfo(new FileInfo().repairName(file.toString()));
temp.isLeaf=true;
temp.fName=temp.fName.replace(strIn, "");
File fis=null;
try {
fis=new File(file.toAbsolutePath().toString());
if(fis.exists())
System.out.println("exists");
if(fis.isFile())
System.out.println("isFile");
System.out.println(file.toAbsolutePath().toString());
temp.fSize=new BigInteger(new Long(fis.length()).toString());
} catch(Exception e){
e.printStackTrace();
}
node.add(temp, true);
FileListCreator.jProgressBar.setValue(++count);
return CONTINUE;
}
はあなたが使用しているコードを表示することができますか?おそらく、あなたは誤ってファイルのみを読み込むように書き込んでいるかもしれません。 – Jivings
'fis'初期化の後に' fis.exists(); 'と' fis.isFile(); 'を呼び出してみてください。彼らはどちらも「真実」を返しますか? – MockerTim
@MockerTim:そうでない場合、両方ともfalseを返します。私は他のシステムで保護されたファイル(ntldrなど)に問題はありませんが、これは通常のファイルには解決できません。トータル・コマンダーを通してファイルのサイズと特性を見ることができます。 – filipbe