2017-08-25 3 views
0

自分のプログラムでファイルを暗号化していて、デスクトップに拡張子のないファイルを作成していますが、すべてtxtで動作しますが、pdf、rtfなどの拡張機能でエラーメッセージが表示されます。私は選択されたファイルのために全く同じファイル名を作成しようとしています。暗号化されたファイルのファイル名を取得する

runEncrypt.setOnAction(new EventHandler<ActionEvent>() { 
       @Override 
       public void handle(ActionEvent event) { 

        File inputFile = new File(selectedFile.getAbsolutePath()); 
        File encryptedFile = new File("/Users/aktasberk/Desktop/E_"+selectedFile.getName()); 
        try { 
         String key = "16BitKeyIsHere16"; 
         CryptoUtils.encrypt(key, inputFile, encryptedFile); 
         // CryptoUtils.decrypt(key, encryptedFile, decryptedFile); 
        } catch (CryptoException ex) { 
         System.out.println(ex.getMessage()); 
         ex.printStackTrace(); 
        } 
       } 
      }); 

あなたは、私が仕事に「)(E_ + selectedFile.getname」を入れて見ることができるように、私は「E_」せずにファイル名だけを取得するために何をすべき、まだデスクトップ上のファイルを作成します。

ありがとうございます!

+3

エラーメッセージはどうなりますか? –

+0

@ patrick-haingeコンパイラにはありませんが、暗号化されたファイルをデスクトップから開こうとすると、「破損したファイルを開くことができません」というメッセージが表示され、ファイルの環境設定に移動して手動で拡張子を削除します。 。 –

+1

ファイルを暗号化してファイルの拡張子を保持すると、関連するソフトウェアでそのファイルを開くことができません。 – Michael

答えて

1

txtのようなファイル拡張子はプレーンテキストであり、含まれるテキストのみを保存します。 pdfファイルには、たとえばメタデータのようなPDFビューアには表示されない他のデータがあります。そのため、内部データの形式が暗号化された* .pdfファイルを開こうとすると、通訳者はプロペラを読むことができません。例えば

PDF形式は、1つの「文字サイズ」のように提出が必要です、あなたはそれがAsG45に変換ファイルを暗号化したときに、視聴者がそれを読んで、ファイルを検出することはできませんあなたのケースでは

破損している場合デスクトップに保存した後で復号化する場合は、ファイル名をE_extension_fileNameにすることができます。これにより、将来そのファイルを解読し、元のファイルがどの拡張子に含まれているかを知ることができます。

+0

ありがとう、私は理解した。ある時点で、ユーザは、将来の使用のために述べたように、これらのネーミングと拡張機能を手動で実行する必要があります。 –

+0

@BarkAktaşあなたがドットでselectedFile.getName()を分割すると、あなたのコードでそれを行うことができます。配列内の2番目の位置は、 –

関連する問題