通过Java发送文件

时间:2013-09-03 11:58:12

标签: java file copy

我的代码是:

public class RemotePlay {

static final String USER_NAME = "bwisniewski";
static final String PASSWORD = "xxx";
static final String NETWORK_FOLDER = "smb://192.168.1.141/ADMIN$/";

public static void main(String[] args) throws IOException, InterruptedException {
    // TODO Auto-generated method stub

    String fileContent = "This is a test File";

    new RemotePlay().copyFiles(fileContent, "testFile1.txt");



}

public boolean copyFiles(String fileContent, String fileName) {
    boolean successful = false;

    try{
        String user = USER_NAME + ":" + PASSWORD;

        System.out.println("User: "+user);

        NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(user);
        String path = NETWORK_FOLDER + fileName;
        System.out.println("Path: "+path);

        SmbFile sFile = new SmbFile(path, auth);

        SmbFileOutputStream sfos = new SmbFileOutputStream(sFile);
        sfos.write(fileContent.getBytes());

        successful = true;
        System.out.println("Successful "+successful);


    }
    catch(Exception e) {
        successful = false;
        e.printStackTrace();
    }

    return successful;
}}

如何更改它以将exe文件发送到ADMIN $共享。我更喜欢使用这种方法,因为我必须对远程PC进行身份验证。如果你有更好的想法将文件复制到ADMIN $ share我很期待听到它。

感谢。

1 个答案:

答案 0 :(得分:0)

sfos.write(fileContent.getBytes());

如果您的数据是文本,那么为什么不使用PrintWriter写下您的文件

public static void main(String [] args) throws Exception {    // temporary    
    File fileOne = new File("testfile1.txt");
    PrintWriter writer = new PrintWriter(fileOne);

    // write down data
    writer.println("This is a test File");

    // free resources
    writer.flush();
    writer.close();
}

关于扩展程序,您可以在创建文件时使用所需的任何扩展程序,它仍然可以保存数据,并且如果您将其重命名为硬盘驱动器上的正确扩展名,则可以打开该数据

如果您将文件命名为testfile.exe,它仍然会保存您的数据,但是当您双击它时,它将无法工作,直到您将其重命名为testfile.txt(如果扩展名与数据中的数据兼容,它将起作用)文件)