精华内容
下载资源
问答
  • 如何从零开始一个vue+webpack前端工程工作流的搭建,首先我们先从项目的目录结构入手。一个持续可发展,不断加入新功能,方便后期维护的目录结构究竟是长什么样子的?接下来闰土大叔带你们一起手摸手学起来。 初级...

    如何从零开始一个vue+webpack前端工程工作流的搭建,首先我们先从项目的目录结构入手。一个持续可发展,不断加入新功能,方便后期维护的目录结构究竟是长什么样子的?接下来闰土大叔带你们一起手摸手学起来。

    初级前端初始化目录篇

    项目伊始,我们肯定是先在terminal终端命令行(以下简称terminal)cd进入<project name>根目录,然后输入 npm init 初始化一个npm项目,在项目根目录下面就会出现一个package.json文件。 然后就可以安装依赖了,直接在terminal里输入 npm i webpack vue vue-loader -D。当我们把这几个安装好以后,terminal这边会提示我们WARN(警告⚠️):

     


     

    翻译过来大意是,vue-loader需要一个css-loader和vue-template-compiler作为它的第三方依赖,所以听它的话,我们去进行一下安装:

    npm i css-loader vue-template-compiler -D

    那下面的警告信息提示我们缺少一些信息,这个其实无关痛痒,所以不需要去关心它。

    通过以上简单几个步骤,我们的项目就初始化好了。然后在根目录下面创建一个src文件夹,这是我们源码放置的目录。然后我们在src目录下面新建一个app.vue文件,里面就可以写一些关于项目的业务代码:

    <template>
        <div id="test">{{text}}</div>
    </template>
    <script>
        export default {
            data () {
                text: '闰土大叔'
            }
        }
    </script>
    <style>
    #test{
        font-size:12px;
        color:green;
    }
    </style>
    

    当然这个后缀为.vue 文件是不可以在浏览器里直接运行的,我们需要想办法让它运行起来。

    现在我们要在项目根目录下新建一个webpack.config.js文件,webpack是帮我们前端来打包资源的,前端资源有很多不同的类型,比如说JavaScript,css,html,image,iconfont等这些资源都是需要通过http请求加载的东西。webpack是将一个js文件加载到浏览器端之后,然后去把所有的内容去渲染出来。所以,很多时候,我们可以把js文件作为项目的入口文件。

    这个时候,我们在src目录下新建一个index.js作为入口文件,顺便在里面写点东西:

    import Vue from 'vue'
    import App from './app.vue'
    
    const root = document.createElement('div')
    document.body.appendChild(root)
    
    new Vue({
        render: (h) => h(App)
    }).$mount(root)
    

    index.js准备完毕之后,那么在webpack.config.js里面就可以这样写:

    const path = require('path')
    
    module.exports = {
        entry:  path.join(__dirname, 'src/index.js'),
        output: {
            filename: 'bundle.js',
            path: path.join(__dirname, 'dist')
        }
    }
    

    在上面的代码中,__dirname就代表这个文件所在的目录地址,path.join()的意思就是和后面的字符串路径拼接起来,形成一个绝对的路径。

    然后通过webpack把所有的文件打包成一个bundle.js文件,并且是能在浏览器里面直接运行的代码。现在我们可以在package.json 文件里的scripts对象里面添加一个脚本:

    "scripts": {
        "build": "webpack --config webpack.config.js"
    }
    

    看到这儿,肯定有童鞋要问了,为什么要在这里面调用webpack而不是在terminal里面直接运行呢?

    因为只有在这里调用webpack,它才会优先调用我们项目里面安装的webpack版本,如果我们在命令行里面输入webpack,它会调动全局的webpack,这个时候全局的webpack可能会跟我们项目中的webpack版本不一致,所以我们还是采取这种方式比较稳妥。

    写完之后,我们就可以在terminal输入npm run build跑一下,会尴尬地发现报错了:

     


     

    这个错误告诉我们,需要为.vue文件去声明一个loader。因为webpack原生是只支持JS文件类型的,并且只支持ES5的语法,所以我们在使用超出它理解范围的语法的时候,我们要使用一些帮它去处理的工具。所以我们要在webpack.config.js文件里面继续写:

    module: {
        rules: [
            {
                test: /.vue$/,
                loader: 'vue-loader'
            }
        ]
    }
    

    添加完这段之后,我们再去terminal执行下npm run build,你会发现项目根目录下多了一个dist文件夹,点开里面发现webpack为我们自动打包生成了一个bundle.js文件,感兴趣的童鞋可以点开这个js文件看看:

     
     
    它里面代码很多,上面是固有的webpack的代码,这些代码是处理项目中的模块依赖的,因为我们项目里有很多的js相互依赖。

      


     

    往下翻到100多行左右的时候,你会发现有很多的代码其实是vue源码。因为我们项目要依赖vue.js,所以webpack会把vue.js文件打包进来。

     


     

    你可以通过快捷键 command (Ctrl) + F 查找关键词$mount看到,红线圈住的这段代码就是我们自己写的代码,其实webpack做的工作就是把这些不同的静态资源的类型打包成一个js,然后我们在html里面引用这个js,就可以正常运行。

    相信大家做前端都知道,在做一个项目开发的时候,我们希望把一些零碎的js文件打包到一起,这样可以减少http请求。同样的,我们希望使用模块依赖,因为项目中会做很多可复用的代码,把它写到一个模块里面去,这样的话当我们再去写一个新项目的时候,不用再把原来的代码重新写一遍,或者是拷贝一份。

    当然这里面我们暂时没有提到.babelrc、.eslintrc、editorconfig、postcss.config.js等,这些我们留到后面再讲。

     

    中级前端合理细化目录篇

     


     

    初始化工作完成之后,接下来我们要细分目录了。首先我们需要在项目的根目录下新建一个文件夹叫build,把webpack的文件单独放到这个文件夹里面。因为我们项目中会用到很多不同的相关文件的配置,接下来先新建一个 webpack.config.base.js 文件,我们把webpack里面需要用到的共同的配置放到这个base的文件里面。比如开发环境和正式环境,以及后期我们要提到的服务端渲染的环境。我们都依赖于base这个配置。

    以下是webpack.config.base.js文件里的代码:

    const path = require('path')
    const createVueLoaderOptions = require('./vue-loader.config')
    
    const isDev = process.env.NODE_ENV === 'development'
    
    const config = {
      target: 'web',
      entry: path.join(__dirname, '../client/index.js'),
      output: {
        filename: 'bundle.[hash:8].js',
        path: path.join(__dirname, '../dist')
      },
      module: {
        rules: [
          {
            test: /\.(vue|js|jsx)$/,
            loader: 'eslint-loader',
            exclude: /node_modules/,
            enforce: 'pre'
          },
          {
            test: /\.vue$/,
            loader: 'vue-loader',
            options: createVueLoaderOptions(isDev)
          },
          {
            test: /\.jsx$/,
            loader: 'babel-loader'
          },
          {
            test: /\.js$/,
            loader: 'babel-loader',
            exclude: /node_modules/
          },
          {
            test: /\.(gif|jpg|jpeg|png|svg)$/,
            use: [
              {
                loader: 'url-loader',
                options: {
                  limit: 1024,
                  name: 'resources/[path][name].[hash:8].[ext]'
                }
              }
            ]
          }
        ]
      }
    }
    
    module.exports = config
    
    

    然后我们再新建一个 webpack.config.client.js ,这个client文件依赖于base文件,在此基础上扩展一些其他配置。因此我们需要在webpack.config.client.js里面敲入一行代码引入base文件 :

    const baseConfig = require('./webpack.config.base')

    基础工作做完之后,我们该如何去扩展配置呢?首先在terminal终端命令行安装下 npm i webpack-merge -D 我们需要webpack-merge这个工具帮助去扩展、合并不同的webpack配置,然后根据声明好的isDev来判断应该怎么合并配置。

    以下是webpack.config.client.js文件里的代码:

    const path = require('path')
    const HTMLPlugin = require('html-webpack-plugin')
    const webpack = require('webpack')
    const merge = require('webpack-merge')
    const ExtractPlugin = require('extract-text-webpack-plugin')
    const baseConfig = require('./webpack.config.base')
    
    const isDev = process.env.NODE_ENV === 'development'
    
    const defaultPlugins = [
      new webpack.DefinePlugin({
        'process.env': {
          NODE_ENV: isDev ? '"development"' : '"production"'
        }
      }),
      new HTMLPlugin()
    ]
    
    const devServer = {
      port: 8000,
      host: '0.0.0.0',
      overlay: {
        errors: true
      },
      hot: true
    }
    
    let config
    
    if (isDev) {
      // 开发环境的配置
      config = merge(baseConfig, {
        devtool: '#cheap-module-eval-source-map',
        module: {
          rules: [
            {
              test: /\.styl/,
              use: [
                'vue-style-loader',
                'css-loader',
                // {
                //   loader: 'css-loader',
                //   options: {
                //     module: true,
                //     localIdentName: isDev ? '[path]-[name]-[hash:base64:5]' : '[hash:base64:5]'
                //   }
                // },
                {
                  loader: 'postcss-loader',
                  options: {
                    sourceMap: true
                  }
                },
                'stylus-loader'
              ]
            }
          ]
        },
        devServer,
        plugins: defaultPlugins.concat([
          new webpack.HotModuleReplacementPlugin(),
          new webpack.NoEmitOnErrorsPlugin()
        ])
      })
    } else {
      // 正式环境的配置
      config = merge(baseConfig, {
        entry: {
          app: path.join(__dirname, '../client/index.js'),
          vendor: ['vue']
        },
        output: {
          filename: '[name].[chunkhash:8].js'
        },
        module: {
          rules: [
            {
              test: /\.styl/,
              use: ExtractPlugin.extract({
                fallback: 'vue-style-loader',
                use: [
                  'css-loader',
                  {
                    loader: 'postcss-loader',
                    options: {
                      sourceMap: true
                    }
                  },
                  'stylus-loader'
                ]
              })
            }
          ]
        },
        plugins: defaultPlugins.concat([
          new ExtractPlugin('styles.[contentHash:8].css'),
          new webpack.optimize.CommonsChunkPlugin({
            name: 'vendor'
          }),
          new webpack.optimize.CommonsChunkPlugin({
            name: 'runtime'
          })
        ])
      })
    }
    
    module.exports = config
    
    

    最后,这个src文件夹我们要重命名一下,叫client,因为我们后期还要写服务端的代码,对应的就命名成server,正好对应它的含义。这样看起来,名称就变得更加的合理。

    当我们万事大吉的时候,千万记得要把 webpack.config.base.js 和 webpack.config.client.js 里面的src路径改掉,换成client,否则就会报错。

     


     

    以上就是我们项目最终形成的目录结构,client目录下分别有assets、layout、views这三个文件夹,其中assets目录下放静态资源,例如images、styles等;layout目录下放通用布局的组件;views目录下放具体的业务代码的组件。

    当然,这个目录其实还可以随着项目的开发再细分下去,这里就不展开叙述了。

    写在最后

    大家一定要注意,在我们正式开发项目、创建一个项目工程的时候,一定要先把目录结构理顺,条理一定要清楚。每个目录结构里面放什么东西,心里一定要先有个概念。以后新建的文件不要乱放,因为项目一旦做大,维护时间比较久的时候,可能两三个月里面都有一个文件你不会去碰它。到时候如果要去找一个东西的时候,你会找不到它,这是非常令人难受的一件事情。

    最重要的一点是,目录结构的混乱,会导致你后续开发项目的效率变得非常的低。

    这次关于“一个正式项目的目录结构是怎么形成的”的话题就说到这里,我之后的文章会讲些什么呢?文章预告如下:

    • eslint的错误修复小技巧
    • vue-loader是如何配置的
    • 如何回答“对vue生命周期的理解”才能让面试官满意?
    • 浅谈css-module的配置
    • ......
    • 正式环境打包以及异步模块打包优化

    以上内容均会第一时间发布在我的公众号:闰土大叔 ,欢迎关注。

     

    转载于:https://www.cnblogs.com/running-runtu/p/8799415.html

    展开全文
  • 表1 id 名称 性别 5 江涛 男 6 王伟 男 表2 id 科目 分数 5 科目一 59 5 科目二 78 6 化学 99 表3 id 行业 5 驾驶教员 6 大学教授
  • 如何从零开始一个vue+webpack前端工程工作流的搭建,首先我们先从项目的目录结构入手。一个持续可发展,不断加入新功能,方便后期维护的目录结构究竟是长什么样子的?接下来闰土大叔带你们一起手摸手学起来。初级...

    如何从零开始一个vue+webpack前端工程工作流的搭建,首先我们先从项目的目录结构入手。一个持续可发展,不断加入新功能,方便后期维护的目录结构究竟是长什么样子的?接下来闰土大叔带你们一起手摸手学起来。

    初级前端初始化目录篇

    项目伊始,我们肯定是先在terminal终端命令行(以下简称terminal)cd进入根目录,然后输入:

    npm init

    初始化一个npm项目,在项目根目录下面就会出现一个package.json文件。然后就可以安装依赖了,直接在terminal里输入:

    npm i webpack vue vue-loader -D

    当我们把这几个安装好以后,terminal这边会提示我们WARN(警告⚠️):

    adf279103c24b8f1c2b0bbc87562aef5.png

    翻译过来大意是,vue-loader需要一个css-loader和vue-template-compiler作为它的第三方依赖,所以听它的话,我们去进行一下安装:

    npm i css-loader vue-template-compiler -D

    那下面的警告信息提示我们缺少一些信息,这个其实无关痛痒,所以不需要去关心它。

    通过以上简单几个步骤,我们的项目就初始化好了。然后在根目录下面创建一个src文件夹,这是我们源码放置的目录。然后我们在src目录下面新建一个app.vue文件,里面就可以写一些关于项目的业务代码:

    <template><div id="test">{{text}}</div></template><script>   export default {        data () {
    text: '闰土大叔'}}</script><style>
    #test{
    font-size:12px;
    color:green;}</style>

    当然这个后缀为.vue 文件是不可以在浏览器里直接运行的,我们需要想办法让它运行起来。

    现在我们要在项目根目录下新建一个webpack.config.js文件,webpack是帮我们前端来打包资源的,前端资源有很多不同的类型,比如说JavaScript,css,html,image,iconfont等这些资源都是需要通过http请求加载的东西。webpack是将一个js文件加载到浏览器端之后,然后去把所有的内容去渲染出来。所以,很多时候,我们可以把js文件作为项目的入口文件。

    这个时候,我们在src目录下新建一个index.js作为入口文件,顺便在里面写点东西:

    import Vue from 'vue'import App from './app.vue'const root = document.createElement('div')
    document.body.appendChild(root)new Vue({
    render: (h) => h(App)}).$mount(root)

    index.js准备完毕之后,那么在webpack.config.js里面就可以这样写:

    const path = require('path')
    module.exports = {
    entry: path.join(__dirname, 'src/index.js'),
    output: {
    filename: 'bundle.js',
    path: path.join(__dirname, 'dist')}}

    在上面的代码中,__dirname就代表这个文件所在的目录地址,path.join()的意思就是和后面的字符串路径拼接起来,形成一个绝对的路径。

    然后通过webpack把所有的文件打包成一个bundle.js文件,并且是能在浏览器里面直接运行的代码。现在我们可以在package.json 文件里的scripts对象里面添加一个脚本:

    "scripts": {   "build": "webpack --config webpack.config.js"}

    看到这儿,肯定有童鞋要问了,为什么要在这里面调用webpack而不是在terminal里面直接运行呢?

    因为只有在这里调用webpack,它才会优先调用我们项目里面安装的webpack版本,如果我们在命令行里面输入webpack,它会调动全局的webpack,这个时候全局的webpack可能会跟我们项目中的webpack版本不一致,所以我们还是采取这种方式比较稳妥。

    写完之后,我们就可以在terminal输入

    npm run build

    跑一下,会尴尬地发现报错了:

    a8aab6455be9466f440f7fafb9453a05.png

    这个错误告诉我们,需要为.vue文件去声明一个loader。因为webpack原生是只支持js文件类型的,并且只支持ES5的语法,所以我们在使用超出它理解范围的语法的时候,我们要使用一些帮它去处理的工具。所以我们要在webpack.config.js文件里面继续写:

    module: {
    rules: [{
    test: /.vue$/,
    loader: 'vue-loader'}]}

    添加完这段之后,我们再去terminal执行下

    npm run build

    你会发现项目根目录下多了一个dist文件夹,点开里面发现webpack为我们自动打包生成了一个bundle.js文件,感兴趣的童鞋可以点开这个js文件看看:

    b49fcd7e66c8bcc4d3054edee17ab327.png

    它里面代码很多,上面是固有的webpack的代码,这些代码是处理项目中的模块依赖的,因为我们项目里有很多的js相互依赖。

    10e97395342ee69c66f50292ba288053.png

    往下翻到100多行左右的时候,你会发现有很多的代码其实是vue源码。因为我们项目要依赖vue.js,所以webpack会把vue.js文件打包进来。

    ddde547d090cc7ff5ee685c26c5727b7.png

    你可以通过快捷键 command (Ctrl) + F 查找关键词$mount看到,红线圈住的这段代码就是我们自己写的代码,其实webpack做的工作就是把这些不同的静态资源的类型打包成一个js,然后我们在html里面引用这个js,就可以正常运行。

    相信大家做前端都知道,在做一个项目开发的时候,我们希望把一些零碎的js文件打包到一起,这样可以减少http请求。同样的,我们希望使用模块依赖,因为项目中会做很多可复用的代码,把它写到一个模块里面去,这样的话当我们再去写一个新项目的时候,不用再把原来的代码重新写一遍,或者是拷贝一份。

    当然这里面我们暂时没有提到.babelrc、.eslintrc、editorconfig、postcss.config.js等,这些我们留到后面再讲。

    中级前端合理细化目录篇

    7adb7c5878e2fc62dd2999c53cc970f5.png

    初始化工作完成之后,接下来我们要细分目录了。首先我们需要在项目的根目录下新建一个文件夹叫build,把webpack的文件单独放到这个文件夹里面。因为我们项目中会用到很多不同的相关文件的配置,接下来先新建一个 webpack.config.base.js 文件,我们把webpack里面需要用到的共同的配置放到这个base的文件里面。比如开发环境和正式环境,以及后期我们要提到的服务端渲染的环境。我们都依赖于base这个配置。

    以下是webpack.config.base.js文件里的代码片段:

    44f2335acb8f244b191a5f732f8fade5.png

    然后我们再新建一个 webpack.config.client.js ,这个client文件依赖于base文件,在此基础上扩展一些其他配置。因此我们需要在webpack.config.client.js里面敲入一行代码引入base文件 :

    const baseConfig = require('./webpack.config.base')

    基础工作做完之后,我们该如何去扩展配置呢?首先在terminal终端命令行安装下 npm i webpack-merge -D 我们需要webpack-merge这个工具帮助去扩展、合并不同的webpack配置,然后根据声明好的isDev来判断应该怎么合并配置。

    以下是webpack.config.client.js文件里的代码片段:

    11d961275934ac6c1a86260633d25be9.png

    最后,这个src文件夹我们要重命名一下,叫client,因为我们后期还要写服务端的代码,对应的就命名成server,正好对应它的含义。这样看起来,名称就变得更加的合理。

    当我们万事大吉的时候,千万记得要把 webpack.config.base.js 和 webpack.config.client.js 里面的src路径改掉,换成client,否则就会报错。

    49a7fc8589336d914de3facda8169c7f.png

    以上就是我们项目最终形成的目录结构,client目录下分别有assets、layout、views这三个文件夹,其中assets目录下放静态资源,例如images、styles等;layout目录下放通用布局的组件;views目录下放具体的业务代码的组件。

    当然,这个目录其实还可以随着项目的开发再细分下去,这里就不展开叙述了。

    写在最后

    大家一定要注意,在我们正式开发项目、创建一个项目工程的时候,一定要先把目录结构理顺,条理一定要清楚。每个目录结构里面放什么东西,心里一定要先有个概念。以后新建的文件不要乱放,因为项目一旦做大,维护时间比较久的时候,可能两三个月里面都有一个文件你不会去碰它。到时候如果要去找一个东西的时候,你会找不到它,这是非常令人难受的一件事情。

    最重要的一点是,目录结构的混乱,会导致你后续开发项目的效率变得非常的低。

    这次关于“一个正式项目的目录结构是怎么形成的”的话题就说到这里,我之后的文章会讲些什么呢?文章预告如下:

    • eslint的错误修复小技巧

    • vue-loader是如何配置的

    • 如何回答“对vue生命周期的理解”才能让面试官满意?

    • 浅谈css-module的配置

    • ......

    • 正式环境打包以及异步模块打包优化

    - END -本号没有留言功能动动手指转发、在看是对我最大的鼓励d85ad0e2ac43705e6eb72bb8322d3cd7.png

    记得把公号加星标,会第一时间收到通知。

    原创不易,如果觉得有点用,希望可以随手转发或者”在看“,拜谢各位老铁。

    展开全文
  • 文件一般都存储在磁盘中,磁盘中的文件以目录树的方式组织起来,每一个目录就是一个存储文件的集合,目录下面又有子目录形成层级目录树。当打开电脑查看某一盘符时,会看到盘符下有目录也有文...

    电脑中存储的图片、电影、动画、资料等都是以文件方式存储的,当编写需要存储和读取文件的程序时,就需要程序支持对文件的操作。文件操作包括文件的创建与删除、读取与写入、遍历与查找。本节主要介绍文件的创建与删除、遍历与查找操作。

    文件一般都存储在磁盘中,磁盘中的文件以目录树的方式组织起来,每一个目录就是一个存储文件的集合,目录下面又有子目录,形成层级目录树。当打开电脑查看某一盘符时,会看到盘符下有目录也有文件,其实盘符本身就是一个根目录,因此盘符下面既有目录也有文件。

    Java把对文件和目录的操作都封装在Java.io包中,当程序需要对文件进行操作时,需要导入Java.io包到程序项目中。Java.io包提供了一个File类,用于文件和目录的创建、查找、遍历和删除。

    1、用File类新建目录

    File类提供了多个方法用于创建一个新的目录,分别说明如下:

    ● boolean mkdir()

    该方法可以创建一个单级目录,目录路径在实例化File类时传入,如果目录路径包含父目录且该父目录不存在时,目录创建失败。目录创建成功返回true,创建失败返回false。

    ● boolean mkdirs()

    该方法可以创建多级目录,目录路径在实例化File类时传入,如目录路径包含父目录且该父目录不存在时,该方法也同时创建其父目录。目录创建成功返回true,创建失败返回false。

    下面的例子演示了如何应用File类创建一个新的目录。

    b8820363cbd2e67860ae0bc97c6944c2.png

    代码分别用mkdir()和mkdirs()创建目录,mkdir()和mkdirs()不同之处是mkdir()只能创建单级目录,mkdirs()可以创建多级目录。mkdirs()方法创建的目录路径为“c:/java/print/data/src”,该路径包含多个目录,且其中的print、data、src目录都不存在,用mkdirs()可以成功创建print、data、src目录,如果用mkdir()则创建失败。

    程序输出结果如下图所示:

    104d87307899e04b8658f29f1cb03049.png

    2、用File类删除目录

    File类也提供了删除目录的操作,分别说明如下:

    ● boolean delete()

    该方法用于删除文件或者一个空目录,空目录是指不包含任何内容的目录,删除成功返回true,否则返回false。

    下面的例子演示了如何应用File类删除一个目录。

    e1475ace5e7eecf52a62e0243eb4ceb6.png

    代码删除“c:/java”目录,如果该目录下有子目录或文件,则删除失败。同理,该方法也可以用于删除文件。

    3、用File类创建文件

    File类提供了createNewFile和createTempFile方法用来创建文件,分别说明如下:

    ● boolean createNewFile ()

    该方法用于创建一个新的空文件,文件存储路径由实例化File类时传入的路径指定,当路径指定的文件存在时,文件创建失败。当文件存储路径所在目录不存在时,文件也会创建失败。

    ● boolean createTempFile(String prefix, String suffix, File directory)

    该方法用于创建临时文件,可以指定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定目录,则存放在系统的临时文件夹下。

    下面的例子演示了如何应用File类创建一个新的文件。

    10eb2579516242171d1b62423a0dc8e8.png

    代码在用createNewFile()在c:/java目录下创建config.txt文件。如果c:/java目录不存在,则抛出异常。如下图所示:

    9b88c9bf38f07a19a33a33d4ff06cabc.png

    在C盘下建立java目录,再执行该程序,文件创建成功。

    4、用File类删除文件

    用File类删除文件,同样也是用delete方法。不过在删除文件之前,最好判断一下该文件是否存在,否则会抛出异常。代码如下:

    5919f64edddc049e2537887cd41fe7f2.png

    5、用File类遍历目录和文件

    File类提供了list和listFiles方法用于获取指定目录下的文件和目录。

    ● File[] listFiles ()

    该方法用于返回某个目录下所有文件和目录的File对象,返回的是File对象数组。

    ● String[] list ()

    该方法用于返回某个目录下的所有文件和目录的文件名,返回的是String数组。

    应用递归方法遍历指定目录下的所有子目录和文件,代码如下:

    e82b0a6ee9f22576f6a3ced3edc208fe.png

    代码应用递归技术遍历指定目录下的子目录和文件,输出结果如下图所示:

    e28caabf743ff8d70c680937d639cbd7.png

    ■ 知识点拨

    使用File类可以创建、删除、遍历目录及文件,但不能用于读写文件。

    展开全文
  • 今天,我们来讲一下 装修施工中骨架隔墙怎么做?主要材料:骨架隔墙使用金属的型材材料和木材材料来做龙骨的,并且在龙骨的两边用不同材料的板材做成罩面板,形成一种墙体。1、轻钢龙骨是用镀锌钢带或薄钢板轧制经...

    今天,我们来讲一下 装修施工中骨架隔墙怎么做?

    d672375a2716ae48a68dd4a3c115dddc.png

    主要材料:

    骨架隔墙使用金属的型材材料和木材材料来做龙骨的,并且在龙骨的两边用不同材料的板材做成罩面板,形成一种墙体。

    1、轻钢龙骨是用镀锌钢带或薄钢板轧制经冷弯或冲压而成的。墙体龙骨由横龙骨、竖龙骨及横撑龙骨和各种配件组成,有50、75、100和150四个系列。

    0e3ee95cc9fe8d232e9d8d33e13ab681.png

    2、木龙骨,通俗点讲就是木条。一般来说,只要是需要用骨架进行造型布置的部位,都有可能用到木龙骨。

    轻钢龙骨隔墙施工流程:

    定位放线 → 踢脚台砌筑→ 安装沿地横龙骨(下槛)→ 安装沿顶横龙骨(上槛)→ 安装沿墙(桩)竖龙骨→ 装设氯丁橡胶密封条→ 安装竖龙骨→ 安装骨架内管线和填塞保温材料→ 安装贯通龙骨、横撑→ 门窗口等节点处骨架安装→ 纸面石膏板的铺钉→ 嵌缝

    cfe590701b0d965cc5ac54e6f2eb3529.png

    木龙骨隔墙施工流程:

    定位放线→ 骨架固定点→ 固定木龙骨→ 铺装饰面板

    施工重点监控

    01、安装沿地横龙骨:如沿地龙骨安装在踢脚板上,应等踢脚板养护到期达到设计强度后,在其上弹出中心线和边线。其地龙骨固定,如己预埋木砖,则将地龙骨用木螺钉钉结在木砖上。如无预埋件,则用射钉进行固结,或先钻孔后用膨胀螺栓进行连接固定。

    f9c7cf5ec0d95decfeb7b3cb7b757619.png

    02、安装贯通龙骨、横撑:根据施工规范的规定,低于 3m 的隔墙安装一道贯通龙骨。3~5m 的隔墙应安装两道。装设支撑卡时,卡距应为400~600mm ,距龙骨两端的距离为20~25mm。对非支撵卡系列的竖龙骨,贯通龙骨的稳定可在竖龙骨非开口面采用角托,以抽芯铆钉或自攻螺钉将角托与竖龙骨连接并托住贯通龙骨。

    ff3bdcdac371851d8ba09723b0587282.png

    施工注意事项

    1、墙位放线应沿地、墙、顶弹出隔墙的中心线及宽度线,宽度线应与隔墙厚度一致,位置应准确无误。

    2、轻钢龙骨的端部应安装牢固,龙骨与基体的固定点间距不应大于1000mm 。安装沿地、沿顶木楞时,应将木楞两端伸入砖墙内至少120mm ,以保证隔断墙与墙体连接牢固。

    f85638d0b63a853f46ca06581c5c8454.png

    3、安装竖向龙骨应垂直,潮湿的房间和钢板网抹灰墙,龙骨间距不宜大于 400mm 。安装支撑龙骨时,应先将支撑卡安装在竖向龙骨的开口方向,卡距在400~600mm 为宜,距龙骨两端的距离宜为20~25mm 。安装贯通系列龙骨时,低于3000mm 的隔墙应安装一道,3000~5000mm 高的隔墙应安装两道。如果饰面板接缝处不在龙骨上时,应加设龙骨固定饰面板。

    b09ca326d9a70371bfabe3b370e57143.png

    4、木龙骨骨架横、竖龙骨宜采用开半榫、加胶、加钉连接。安装饰面板前,应对龙骨进行防火处理。

    5、安装纸面石膏板饰面宜竖向铺设,长边接缝应安装在竖龙骨上。龙骨两侧的石膏板及龙骨一侧的双层板的接缝应错开安装,不得在同一根龙骨上接缝。轻钢龙骨应用自攻螺钉固定,木龙骨应用木螺钉固定,沿石膏板周边钉间距不得大于200mm,钉与钉间距不得大于300mm ,螺钉与板边距离应为10~15mm 。安装石膏板时应从板的中部向板的四边固定。钉头略埋入板内,但不得损坏纸面。钉眼应进行防锈处理。石膏板与周围墙或柱应留有3mm的槽口,以便进行防开裂处理。

    22499fafc0a780f0ce443b19f6a4611c.png

    6、安装胶合板饰面前应对板的背面进行防火处理。胶合板与轻钢龙骨的固定应采用自攻螺钉,与木龙骨的固定采用圆钉时,钉距宜为80~1 50mm,钉帽应砸扁;采用射钉枪固定时,钉距宜为80~100mm,阳角处应做护角;用木压条固定时,固定点间距不应大于200mm。

    6b434105f5ec1447664a3e72750d7d53.png

    好啦,今天的内容就分享到这里啦,下期,楼固君带你了解板材隔墙的做法!

    我们下期见~

    展开全文
  • 之前对索引的一些逻辑总是知其然不知所以然,今天学了LM技术窝的mysql实战有了一定的认识...建立主键索引,将每个页最小的主键挑出来放到一个索引目录,可以通过offsett实现页的随机读取然后可以获取到页的连续的一坨..
  • 我们团队现在开发的node项目都是基于 Koa 框架实现的,虽然现在也形成了一套团队内的标准,但是在开发的过程中也遇到了一些问题: 由于没有统一的规范,新人上手和沟通成本比较高,容易出现错误 仅局限于目前需求...
  • 内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。linux内核内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络...
  • 百度网盘大家都在用,有时候希望把自己的文件目录结构给导出来,能形成一个文件树的形式,无奈网上找了好多资料都无果,大多数说的是在浏览器里控制台下,那个方法已经不适用,而且只能导出一级目录,求人不如求己,...
  • 内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。linux内核内核是操作系统的核心,具有很多最基本功能,它负责管理系统的进程、内存、设备驱动程序、文件和网络...
  • 由于管材的封闭性,切割管材时溶渣附着于管材内壁,形成挂渣现象,同时切割时产生的大部分热量被制件吸收,切割密度较大时,往往会造成管材过热,拐角及方管四个角产生过烧问题,严重影响制件切口质量,甚至无法切割...
  • word文档中形成目录后 word页面上都有显示,但如图所示左边的导航上没有显示目录的二级三级标题,怎么解决?![图片](https://img-ask.csdn.net/upload/201605/26/1464224236_955413.png)
  • 形成一个文件树的形式,无奈网上找了好多资料都无果,大多数说的是在浏览器里控制台下,那个方法已经不适用,而且只能导出一级目录,求人不如求己,无奈之下决定自己动手丰衣足食,下面小编手把手教你怎么把百度云...
  • cmd命令行中如何切换所在目录 写在前面: 非常简单的几个步骤,但是怎么也记不住,大概是因为我使用的是win10吧,假若经常使用Linux等系统,忘记显然是不可能的。 所以呢,技术不用会生疏,但用多了成了本能,形成...
  • ip地址学习笔记目录

    2018-04-14 16:54:36
    也希望大家看完后能掌握ip地址规划,ip地址学习本身不难,难的是ip地址中的知识点比较零碎,而每一部分的新知识点都和前面的有着紧密联系(没有基础的同学,真的不建议跳着看),关键看你怎么建立起关联以形成自己的...
  • 有朋友奇怪,已经在configure指定了包含目录怎么还是不对呢? 可以安装 apt install zlib1g-dev # zlib ? 有朋友说,吾就是想指定目录,怎么办? 虽然指定了目录,实际上形成Makefile的时候,并没有包含这个...
  • 形成一个文件树的形式,无奈网上找了好多资料都无果,大多数说的是在浏览器里控制台下,那个方法已经不适用,而且只能导出一级目录,求人不如求己,无奈之下决定自己动手丰衣足食,下面小编手把手教你怎么把百度云...
  • 展开全部1、绝对路径从根目录32313133353236313431303231363533e4b893e5b19e31333365646263开始,依次将各级子目录的名字组合起来,形成的路径就称为某个文件的绝对路径。例如,根目录(/)下有目录usr,usr目录下有子...
  • 怎么删除TEMP文件夹

    千次阅读 2015-04-13 16:44:18
    临时文件是怎么形成的? 应用程序在使用的过程中都会产生一些临时文件供自己使用,理论上来说,在应用程序退出时这些文件后会被自动删除。当应用程序在运行过程中出错或非正常退出时,这些文件就会留在临时目录中。...
  • 那么,磁盘和文件系统是怎么工作的呢?又有哪些指标可以衡量它们的性能呢?索引节点和目录项文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。你要记住最重要的一点...
  • 今天试了一下在cmd编译JAVA,环境变量都是配置完成的… ...在cmd 里面写java代码的根目录 编译 java (名字).java 可以形成 (名字).class 但是不管怎么样都运行不了 javac (名字). 找了很多方法,说什么...
  • 文章目录缘起掉头发问题防治大法秘访老中医:胃、肝、脾、肾易筋经、洗髓经腰间盘内啥,心照不宣 缘起 为什么会做这么一期呢?有需求,就会有市场嘛,这是最直接的了。 我有一个程序员的大群,群里三百六十行的人...
  • 启动类加载器(Bootstrap ClassLoader):负责加载JAVA_HOME/lib/目录中的或通过-Xbootclasspath参数指定路劲中且被虚拟机认可(按文件名识别, 如rt.jar)的类由C++实现, 不是ClassLoader子类扩展类加载器(Extension Cl...
  • 文章目录索引节点和目录项虚拟文件系统...组织方式不同,就会形成不同的文件系统。 在 Linux 中一切皆文件,不仅普通的文件和目录,就连块设备、套接字、管道等,也都要通过统一的文件系统来管理。 为了方便管理,Linux
  • 目录 1、Java项目引用 2、protobuf 的文件定义格式 基础类型 特殊字段 3、生成java类 4、使用协议 5、如何在游戏项目中使用 游戏服务器和客户端的通信有很多种形式,有的用http,有的用websocket,不过...
  • 那么,磁盘和文件系统是怎么工作的呢?又有哪些指标可以衡量它们的性能呢? 索引节点和目录项 文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。 你要记住最重要的...
  • 那么,磁盘和文件系统是怎么工作的呢?又有哪些指标可以衡量它们的性能呢?索引节点和目录项文件系统,本身是对存储设备上的文件,进行组织管理的机制。组织方式不同,就会形成不同的文件系统。你要记住最重要的一点...

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 220
精华内容 88
关键字:

怎么形成目录