2016-10-03 11 views
-1
  1. 文字列testpath1 = "smb:// host_address/File_Folder";
  2. ファイルtestFile1 =新しいファイル(testpath1 + fi.getName());
  3. fi.write(testFile1);

Javaのこのコードは、Linuxサーバーでファイルを読み書きします。ただし、ファイルを作成した後(2行目)、ファイルのパスはsmb:/host_address/File_Folder/File_Nameになります。ファイルの作成中にjavaで '//'を使用する方法

ファイルパスをsmb://host_address/File_Folder/File_Nameとします。

助けてください!

+0

あなたの質問の最初の3行のリストは何ですか?コードブロックではありませんか? –

+0

はい、コードブロックです。行番号を指定すると読みやすいはずです。 – saher

+0

私は人々が行番号なしで3行のコードを読むのに問題があるとは思わない。現時点では、実際には読みにくいコードとしてフォーマットされていません。行番号を削除してコードを4つのスペースでインデントしてコードブロックにするだけです。スタックオーバーフローは、それを読めるようにするでしょう:) –

答えて

0

Java Fileクラスは、実行している環境に応じてパス名を抽象パス名に変換します。 。

  1. オプションのシステムなどのUNIXルートディレクトリ、またはMicrosoft Windows UNCパス
  2. ための「\\」のためのディスク・ドライブ指定子、「/」のように依存接頭辞文字列、:抽象パス名は、2つのコンポーネントがあります
  3. ゼロ個以上の文字列名
  4. 私はJavaが開くSmbFileクラスを使用する必要が1/

    の失う結果として、あなたのケースでのUNIXベースのシステムの抽象パス名を使用している可能性を推測

のシーケンスSmbFile SmbFile file = new SmbFile(testpath1 + fi.getName()) 詳しくはSmbFile docJava Fileをご覧ください。

+0

ありがとうJainul!私はFileItem(fi)を使用しています。その書き込みメソッドはFileオブジェクトを必要とします。 fi.write(ファイルファイル)。 SmbFileを使用する場合、SmbFileオブジェクトをファイルに変換する方法は? – saher

+0

あなたはもっと読むことができます。 http://stackoverflow.com/a/36473193/6912578 – Moonstruck

0

編集:不正な方法。

行内に4つのスラッシュが機能することがあります。 Javaやその他のいくつかの言語では、/はタブや改行などの目に見えない文字を挿入するエスケープ文字であるため、//は/に縮小されます。テスト////

も参照してください:What are all the escape characters in Java?

+0

私の理解によると、 '\'はエスケープ文字です。 '////'は機能しません:( – saher

+0

それはもっと正確に聞こえます。 – davidtheterp

0

は、すべての開発者は、その後、彼/彼女プログラミングJavaを使用してLinuxサーバ上アップロードファイルを望んでいるがあれば、Javaで「//」を使用するようにソリューションを取得できませんでした以下のスニペットを使用できます。思考は私のような開発者のために役立つかもしれません:)

SmbFile originalFile = new SmbFile(filePath + fi.getName()); 
InputStream in; 
in = fi.getInputStream(); //fi is FileItem 
SmbFileOutputStream out; 
out = new SmbFileOutputStream(originalFile); 
IOUtils.copy(in, out); 
in.close(); 
out.close(); 
関連する問題