如何通过java服务在azure目录中添加文件?

如何通过java服务在azure目录中添加文件?,java,spring,api,azure,Java,Spring,Api,Azure,我正在创建一个应用程序,我想将文件夹从本地存储(从PC)存储到azure任何共享下创建的目录。我在azure存储帐户的“文件”下工作 这是我的密码: @Override public String uploadDirectory(JSONObject jsonInput) throws IOException { CloudFileClient fileClient = null; try{ fileClient = FileClientP

我正在创建一个应用程序,我想将文件夹从本地存储(从PC)存储到azure任何共享下创建的目录。我在azure存储帐户的“文件”下工作

这是我的密码:

@Override
    public String uploadDirectory(JSONObject jsonInput) throws IOException {
        CloudFileClient fileClient = null;
        try{
        fileClient = FileClientProvider.getFileClientReference();
        String directoryLocation = jsonInput.get("directoryLocation").toString();
        File f = new File(directoryLocation);
        listFilesForFolder(f);

        CloudFileShare share = fileClient.getShareReference(f.getName().toLowerCase().replace(".", "").replace("_", ""));
        if (share.createIfNotExists()) {
            System.out.println("New share created");
        }
        CloudFileDirectory rootDir = share.getRootDirectoryReference();
        CloudFileDirectory sampleDir = rootDir.getDirectoryReference(f.getName().toLowerCase().replace(".", "").replace("_", ""));
        if (sampleDir.createIfNotExists()) {
            System.out.println("new directory created");
        } 
        for ( ListFileItem fileItem : rootDir.listFilesAndDirectories() ) {
            System.out.println(fileItem.getUri());
        }

        }catch(Exception e)
        {
            System.out.println("Exception "+e);
        }
        return "Check";
    } 

如何将所有文件夹“f”及其内容存储到目录“sampleDir”?

您可以使用以下示例代码将本地文件夹及其内容上载到应用程序中的Azure文件存储

@Override
public String uploadDirectory(JSONObject jsonInput) throws IOException {
    CloudFileClient fileClient = null;
    try {
        fileClient = FileClientProvider.getFileClientReference();
        String directoryLocation = jsonInput.get("directoryLocation").toString();
        File f = new File(directoryLocation);

        CloudFileShare share = 
        fileClient.getShareReference(f.getName().toLowerCase().replace(".", "").replace("_", ""));
        if (share.createIfNotExists()) {
            System.out.println("New share created");
        }
        CloudFileDirectory rootDir = share.getRootDirectoryReference();

        listFilesAndUploadToCloud(f.getAbsolutePath(), rootDir);

    } catch(Exception e) {
        System.out.println("Exception " + e);
    }
    return "Check";
} 

public void listFilesAndUploadToCloud(String filePath, CloudFileDirectory storageDir) throws Exception {

    File f = new File(filePath);
    ArrayList<File> files = new ArrayList<File>(Arrays.asList(f.listFiles()));

    for (File file : files) {
        if (file.isFile()) {
            CloudFile cloudFile = storageDir.getFileReference(file.getName());
            cloudFile.uploadFromFile(file.getAbsolutePath());
        } else {
            CloudFileDirectory cloudDir = storageDir.getDirectoryReference(file.getName());
            if (cloudDir.createIfNotExists()) {
                listFilesAndUploadToCloud(file.getAbsolutePath(), cloudDir);
            }
        }
    }

}
@覆盖
公共字符串上载目录(JSONObject jsonInput)引发IOException{
CloudFileClient fileClient=null;
试一试{
fileClient=FileClientProvider.getFileClientReference();
字符串directoryLocation=jsonInput.get(“directoryLocation”).toString();
文件f=新文件(目录位置);
CloudFileShare共享=
fileClient.getShareReference(f.getName().toLowerCase().replace(“.”,”).replace(“.”,”);
if(share.createIfNotExists()){
System.out.println(“新增股份”);
}
CloudFileDirectory rootDir=share.getRootDirectoryReference();
listfiles和uploadtocloud(f.getAbsolutePath(),rootDir);
}捕获(例外e){
系统输出打印项次(“例外”+e);
}
返回“支票”;
} 
public void listFilesAndUploadToCloud(字符串文件路径,CloudFileDirectory存储目录)引发异常{
文件f=新文件(文件路径);
ArrayList文件=新的ArrayList(Arrays.asList(f.listFiles());
用于(文件:文件){
if(file.isFile()){
CloudFile CloudFile=storageDir.getFileReference(file.getName());
uploadFromFile(file.getAbsolutePath());
}否则{
CloudFileDirectory cloudDir=storageDir.getDirectoryReference(file.getName());
if(cloudDir.createIfNotExists()){
listfiles和uploadtocloud(file.getAbsolutePath(),cloudDir);
}
}
}
}

谢谢。逻辑良好,实现良好。您好,请看一下这个问题: