-8

ユーザーがファイルをアップロードするアプリケーションがあります。

しかし、私が望むのは、アップロードされたファイルのファイル拡張子を検出することであり、doc ファイルが他の何かを行う場合は何もしません

誰にもアイデアはありますか?

ファイル拡張子を変更する方法はありますか?たとえば、ファイルは D:/test.doc から D:/test.pdf に変更されます

私はこれがファイル形式を変換しないことを知っています、それは後で行われます

ファイルの場所は毎回変わるので、場所を取得してファイル拡張子を変更する方法が必要です

私が現在持っているコード

File file = new File("oldname");

File file2 = new File("newname");
// Rename file (or directory)
boolean success = file.renameTo(file2);
if (!success)
{
// File was not successfully renamed
}

しかし、これはそれを行いません:(このコードの問題は、新しいファイル名を指定する必要があることです。拡張子が異なるだけで、古いファイル名とまったく同じにする必要があるため、できません

編集2

最後の質問が少しわかりにくかったので、これで解決することを願っています

基本的に、アップロードされたドキュメントファイルをpdfに変換するプログラムを持っていますが、ユーザーごとにフォルダーを作成するため、アップロードされたドキュメントの場所が毎回変わります

これは変数で定義されていますString location

私がやりたいのは、この変数locationを取得することです。これは a で終わり、から.docに変更したいlocationから.docです.pdf

次を使用して、拡張子なしでファイルの名前を見つけることができました。

        String path = location;
        File f = new File(path);
        System.out.println(f.getName()); 
        String fName = f.getName();
        System.out.println(fName.substring(0, fName.lastIndexOf('.')));

しかし、ファイル名の前のパスを見つけるにはどうすればよいですか

最後に解決策を見つけたときの編集

 System.out.println(path2.substring(0, path2.lastIndexOf('.')));
            newLocation = (path2.substring(0, path2.lastIndexOf('.')))+".pdf";
            System.out.println(newLocation);
4

2 に答える 2

2

などの文字列の一致によって拡張子を簡単に確認できますendsWith()

ファイル名の前のパスを調べるには、絶対パスで lastIndexof("\") を使用します。

于 2013-04-18T20:34:52.923 に答える
2

アップロードされたファイルのファイル拡張子を確認する必要がある場合は、マジック ナンバーの使用をお勧めします。

詳細はこちら

.doc や .pdf などの拡張子のチェックは、このファイルが word 文書または pdf 文書ファイルであることを意味するものではありません。

于 2013-04-18T20:39:04.787 に答える