Proyek sering perlu mengakses folder bersama, seperti folder bersama yang menyimpan foto, file, dll. Jadi bagaimana cara membaca dan menulis folder bersama Windows menggunakan java?
Java dapat menggunakan kerangka kerja JCIFS untuk membaca dan menulis folder bersama Windows. Kerangka kerja ini memungkinkan kami untuk mengakses folder jarak jauh seperti mengakses folder lokal.
URL JCIFS: http://jcifs.samba.org/
JCIFS adalah kerangka kerja open source yang dikembangkan menggunakan java murni, mengakses folder jarak jauh melalui protokol SMB. Kerangka kerja ini mendukung folder bersama Windows dan folder bersama Linux. Namun, folder bersama Linux memerlukan instalasi perangkat lunak layanan SAMBA (situs web resmi: http://www.samba.org/).
SMB (Blok Pesan Server) adalah protokol komunikasi untuk berbagi file dan printer di jaringan area lokal. Ini menyediakan layanan berbagi untuk file, printer, dan sumber daya lain antara berbagai komputer di jaringan area lokal. Protokol SMB adalah protokol klien/server di mana klien dapat mengakses sistem file bersama, printer, dan sumber daya lainnya di server. Dengan mengatur "NetBIOS atas TCP/IP", Samba tidak hanya dapat berbagi sumber daya dengan host jaringan lokal, tetapi juga dengan komputer di seluruh dunia.
Artikel ini terutama mempelajari cara menggunakan Java untuk mengakses folder bersama untuk Windows.
Pertama, temukan mesin Windows, buat folder: SharedFolder di lokasi mana pun, dan atur untuk berbagi, dan atur nama pengguna bersama: Bagikan, Kata Sandi: Admin.
(Cara Mengatur Folder Bersama Di Bawah Windows 7: Cara Mengatur Folder Bersama Di Bawah Windows 7: //www.vevb.com/os/windows/78034.html)
Apakah itu folder bersama untuk Windows atau Linux, kode untuk menggunakan Java SMB untuk mengakses folder bersama adalah sama, tetapi cara Windows dan Linux mengkonfigurasi folder bersama berbeda.
Kode tes adalah sebagai berikut:
Inputstream in = null; OutputStream out = null; coba {// dapatkan file gambar localfile = file baru ("c:/testjpg"); String remotePhoTourl = "smb: // share: admin@11/sharedfolder/"; // Direktori bersama untuk menyimpan gambar SimpleDateFormat fmt = new SimpleDateFormat ("yyyymmddhhmmssssss_"); Smbfile remoteFile = smbfile baru (remotePhoTourl + "/" + fmtformat (tanggal baru ()) + localfileGetName ()); RemoteFileConnect (); // coba hubungkan di = baru bufferedInputStream (FileInputStream baru (localfile)); out = baru bufferedoutputStream (smbfileOutputStream baru (remoteFile)); byte [] buffer = byte baru [4096]; int len = 0; // Baca panjang sementara ((len = inread (buffer, 0, bufferlength))! = -1) {outwrite (buffer, 0, len); } outflush (); // Segar aliran output buffered} catch (Exception e) {string msg = "Terjadi kesalahan:" + EgetLocalizedMessage (); SystemoutPrintln (MSG); } akhirnya {coba {if (out! = null) {outclose (); } if (in! = null) {inclose (); }} catch (Exception e) {}}Dalam kode di atas, kelas SMBFile yang disediakan oleh kerangka kerja JCIFS digunakan. Kelas ini mirip dengan kelas file Java. Menggunakan objek kelas ini dapat menangani bacaan dan penulisan file jarak jauh. Gunakan objek file untuk membaca file lokal dan kemudian gunakan objek SMBFile untuk menulis ke file jarak jauh. Metode SMBFile's Connect () dapat mencoba untuk terhubung ke folder jarak jauh. Jika akun atau kata sandi salah, pengecualian koneksi akan dilemparkan.
Saat mengunduh file jarak jauh, gunakan objek SMBFile untuk membaca file jarak jauh. Kodenya adalah sebagai berikut:
Inputstream in = null; BytearrayoutputStream out = null; coba {// Buat string objek file jarak jauh string remotePhoTourl = "smb: // share: admin@11/sharedfolder/testjpg"; Smbfile remotefile = smbfile baru (remotephotourl); RemoteFileConnect (); // Coba hubungkan // Buat aliran file di = BufferedInputStream baru (SMBFileInputStream baru (RemoTeFile)); out = new ByTeArrayOutputStream ((int) RemoteFilelength ()); // Baca file konten file [] buffer = byte baru [4096]; int len = 0; // Baca panjang sementara ((len = inread (buffer, 0, bufferlength))! = - 1) {outwrite (buffer, 0, len); } outflush (); // flush aliran output buffered return outtobytearray (); } catch (Exception e) {string msg = "kesalahan mengunduh file jarak jauh:" + eGetLocalizedMessage (); SystemoutPrintln (MSG); } akhirnya {coba {if (out! = null) {outclose (); } if (in! = null) {inclose (); }} catch (Exception e) {}}Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.