8

Windows 共有を使用してサーバー上のフォルダーを共有しました。コードを実行している別のコンピューターで、そのフォルダーを指すネットワークドライブをマップしました。

私のコードでは、時々ローカル コンピューターからサーバーにファイルを転送します。このようなもの:

File srcFile = new File("C:\\test.mpg");
File destFile = new File(...);

// error checking
FileUtils.moveFile(srcFile, destFile);

の場合destFile、どのアプローチを使用すればよいですか? 私の現在のアプローチ:

File destFile = new File("Z:\\folder\\test.mpg");

またはネットワーク パスを使用します。

File destFile = new File("\\192.168.123.123\\folder\\test.mpg");

これを尋ねるのは、最近、プログラムがログオンしていないためにネットワーク ドライブに書き込むことができず、手動でドライブに移動して資格情報を入力し、「接続状態を維持する」を有効にする必要があるため、ファイル転送が失敗するケースに遭遇したためです。 " オプション。

4

2 に答える 2

8

マップされたドライブまたは完全なネットワーク パスを同等に使用できます。Java は気にせず、ファイル名を OS に渡すだけです。ネットワークパスを使用している場合は\\\\、最初に必要であることに注意してください。

于 2013-08-15T03:13:43.400 に答える
8

JCIFSライブラリを使用して、Java で Windows SMB 共有にアクセスできます。それを使用すると、次のようなことができます。

String smbUrl = "smb://username:password@server/share/file";
SmbFileOutputStream fos = new SmbFileOutputStream(new SmbFile(smbURL));
于 2013-08-15T03:17:07.727 に答える