精华内容
下载资源
问答
  • 我们经常在计算机中使用压缩文件,经常看到后缀为rar,zip,tar,cab,7z图标压缩文件的格式,这些格式都可以归类为压缩文件格式,除此之后压缩格式还有很多种类型,阅读下文了解压缩文件格式的原理和种类。...

    我们经常在计算机中使用压缩文件,经常看到后缀为rar,zip,tar,cab,7z图标是压缩文件的格式,这些格式都可以归类为压缩文件格式,除此之后压缩格式还有很多种类型,阅读下文了解压缩文件格式的原理和种类。

    c2f8d6458ee78d4929bfe2ce0a2fd87e.png

    经过压缩软件压缩的文件叫压缩文件,压缩的原理是把文件的二进制代码压缩,把相邻的0,1代码减少,比如有000000,可以把它变成6个0 的写法60,来减少该文件的空间。

    JAR

    JAR 文件就是 Java Archive File,顾名思意,它的应用是与 Java 息息相关的,是 Java 的一种文档格式。JAR 文件非常类似 ZIP 文件——准确的说,它就是 ZIP 文件,所以叫它文件包。JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的时候自动创建的。

    ZIP

    ZIP应该算是最常见的压缩文件格式了,你甚至不需要单独为它安装一个压缩或者解压缩软件,因为我们使用的Windows系统以及集成了对ZIP压缩格式的支持。

    RAR

    虽然ZIP在压缩文件格式中地位很高,但现在相当多的下载网站都选择了用RAR格式来压缩他们的文件,最根本的原因就在于RAR格式的文件压缩率比ZIP更高。

    7Z

    作为压缩格式的后起新秀,7Z有着比RAR更高的压缩率,能够将文件压缩的更加小巧。不过因为RAR格式已经高度普及,又没有网络普及的“天时”相助,7Z想要取代RAR现在的地位还是相当不容易的。

    CAB

    CAB是微软的一种安装文件压缩格式,主要应用于软件的安装程序中。因为涉及到安装程序,所以cab文件中包含的文件通常都不是简单的直接压缩,而是对文件名等都进行了处理,所以虽然可以对其直接解压缩,但解压后得到的文件通常都无法直接使用。

    ISO

    很多朋友都认为ISO是一种压缩格式,这源于WinRAR添加了对ISO格式“解压”的支持。而实际上,ISO并不是压缩格式,它之中所包含的文件也并没有经过压缩。ISO只是一种光盘的镜像格式,完全复制并保存了光盘上的内容而已。所谓的对ISO“解压”的过程,不过就是对ISO内文件的提取过程。

    TAR

    TAR为后辍的文件能用WinZip或WinRar打开,是因为WinZip或WinRar对TAR文件进行了关联,也就是指可以用相应的解压软件将其解压。

    TAR是linux下较为常用的压缩文件的格式,并不是什么数据库文件。

    UUE

    UUE是一种在遇到邮件编码混合引起乱码的情况下比较有用的压缩格式,可以用WinZIP或者WinRAR打开。

    以上便是关于压缩文件格式的原理和种类,有一些格式比较少见,都是特殊用途的压缩格式,我们虽然看不到,但在系统安装软件的时候是真实存在的。当然,还有一些更加少见的压缩格式用于特殊用途,笔者这边暂缺不提。

    展开全文
  • 有哪些for mac图片压缩工具呢?今天给大家介绍一下该如何使用ImageOptim for mac压缩图片。当你拖放图片到ImageOptim的窗口,它会自动运行多个图片的优化工具,并结合他们的结果,从而确保您始终获得最小的文件。...

    如果你拍的图片太多,想通过MacBook来压缩怎么办?有哪些for mac图片压缩工具呢?今天给大家介绍一下该如何使用ImageOptim for mac压缩图片。

    当你拖放图片到ImageOptim的窗口,它会自动运行多个图片的优化工具,并结合他们的结果,从而确保您始终获得最小的文件。ImageOptim与macOS很好地集成,所以你也可以把文件放在ImageOptim的Dock图标上,或者使用服务 Finder中的菜单,或者 标记Apple MAIl中附加图像的菜单。ImageOptim也可以从命令行或Sketch启动。如果你启用有损的缩小你会得到最小的文件大小。

    默认情况下,ImageOptim会完全保留图像质量,但是如果允许它改变质量,即使只有一点点,它将可以自由地使用更积极的优化,以获得最大的结果。您可以在ImageOptim中配置有损优化优先。

    mageOptim支持PNG、JPG、GIF格式的图片压缩优化,你只需将文件拖放到它的界面上即可完成优化 (提示:处理后会覆盖原图 / 原图被移到垃圾桶,可手工恢复),支持批量,使用上非常简单方便。

    ImageOptim非常适合在网络上发布图像(可以在Photoshop中轻松缩小图像“保存为网页”)。这对于使Mac和iPhone / iPad应用程序更小更有用。

    ImageOptim可以移除EXIF元数据,例如Gps位置和相机的序列号,这样就可以发布图像而不会泄露隐私信息。

    展开全文
  • 有哪些for mac图片压缩工具呢?今天给大家介绍一下该如何使用ImageOptim for mac压缩图片。当你拖放图片到ImageOptim的窗口,它会自动运行多个图片的优化工具,并结合他们的结果,从而确保您始终获得最小的文件。...

    ebe4702a1bdf94ea80b1632e69033aa5.png

    如果你拍的图片太多,想通过MacBook来压缩怎么办?有哪些for mac图片压缩工具呢?今天给大家介绍一下该如何使用ImageOptim for mac压缩图片。

    当你拖放图片到ImageOptim的窗口,它会自动运行多个图片的优化工具,并结合他们的结果,从而确保您始终获得最小的文件。ImageOptim与macOS很好地集成,所以你也可以把文件放在ImageOptim的Dock图标上,或者使用服务 Finder中的菜单,或者 标记Apple MAIl中附加图像的菜单。ImageOptim也可以从命令行或Sketch启动。如果你启用有损的缩小你会得到最小的文件大小。

    默认情况下,ImageOptim会完全保留图像质量,但是如果允许它改变质量,即使只有一点点,它将可以自由地使用更积极的优化,以获得最大的结果。您可以在ImageOptim中配置有损优化优先。

    78c947a1bee222ea985606efce6ac4ed.gif

    mageOptim支持PNG、JPG、GIF格式的图片压缩优化,你只需将文件拖放到它的界面上即可完成优化 (提示:处理后会覆盖原图 / 原图被移到垃圾桶,可手工恢复),支持批量,使用上非常简单方便。

    ImageOptim非常适合在网络上发布图像(可以在Photoshop中轻松缩小图像“保存为网页”)。这对于使Mac和iPhone / iPad应用程序更小更有用。

    ImageOptim可以移除EXIF元数据,例如Gps位置和相机的序列号,这样就可以发布图像而不会泄露隐私信息。

    561e327b8c3feded054906e470036570.png
    展开全文
  • 直接预览文件指的是,在 WinZip 内部可以直接查看本地的或者压缩文件中的 Word、Excel、PPT、PDF、图片和音频类等文件。当你浏览这些文件时,在窗口右下角会出现一个预览图标,点击预览图标就可以直接预览文件完整...
  • 这些格式的游戏文件都可以直接运行,首先网盘里下载的一些文件格式可能是rar或者zip,7z格式,这些格式都属于压缩包,不能马上使用运行,需要进行解压,得到模拟器能运行的以上格式就可以(右键解压,或者下载好压...
  • 克隆此github存储库或将其下载为zip文件并解压缩: : 转到about:debugging#addons (在地址栏中键入),然后点击"Load Temporary Add-On" 。 然后,您需要在项目文件夹内的build文件夹中选择manifest.json文件。 ...
  • 前端常见面试题

    2021-04-11 19:25:43
    1.JS中常用的性能优化方式有哪些 图片优化: 小图使用base64格式 将多个图标文件整合到一张图片中 对于能够显示Webp格式的浏览器尽量使用Webp格式,因为Webp格式具有更好的图像数据压缩算法,能带来更小的图片...

    1.JS中常用的性能优化方式有哪些

    图片优化:

    • 小图使用base64格式
    • 将多个图标文件整合到一张图片中
    • 对于能够显示Webp格式的浏览器尽量使用Webp格式,因为Webp格式具有更好的图像数据压缩算法,能带来更小的图片体积(但是兼容性并不好)

    节流:

    考虑到类似滚动事件一样发起网络请求,如果是在滚动过程中一直发起请求,而不是隔一段时间发起一次,需要用到节流

    // func是用户传入需要防抖的函数
    // wait是等待时间
    const throttle = (func, wait = 50) => {
      // 上一次执行该函数的时间
      let lastTime = 0
      return function(...args) {
        // 当前时间
        let now = +new Date()
        // 将当前时间和上一次执行函数时间对比
        // 如果差值大于设置的等待时间就执行函数
        if (now - lastTime > wait) {
          lastTime = now
          func.apply(this, args)
        }
      }
    }
    
    setInterval(
      throttle(() => {
        console.log(1)
      }, 500),
      1
    )
    

    防抖:

    考虑到按钮点击事件,我们并不是每次点击都发起网络请求,而是用户点击按钮一段时间后没有再次点击的情况下才发起网络请求,使用防抖

    // func是用户传入需要防抖的函数
    // wait是等待时间
    const debounce = (func, wait = 50) => {
      // 缓存一个定时器id
      let timer = 0
      // 这里返回的函数是每次用户实际调用的防抖函数
      // 如果已经设定过定时器了就清空上一次的定时器
      // 开始一个新的定时器,延迟执行用户传入的方法
      return function(...args) {
        if (timer) clearTimeout(timer)
        timer = setTimeout(() => {
          func.apply(this, args)
        }, wait)
      }
    }
    

    预渲染:

    可以通过预渲染将下载的文件预先在后台渲染

    例如:

    <link rel="prerender" href="http://example.com">

    预渲染虽然提高页面的加载速度,但是要确保该页面大概率会被用户打开之后打开,否则就是白白浪费资源去渲染

    懒加载:

    就是将不关键的资源延后加载

    对于图片,先设置标签src属性为一张占位图,将真实的图片资源放入一个自定义属性中,当进入自定义区域时,就将自定义属性替换为SRC属性,这样图片就会下载资源,实现图片的懒加载

    加载资源:

    阻塞式脚本:合并文件(减少HTTP请求),将script标签放在body尾部

    无阻塞式脚本:延迟脚本和动态脚本均不阻塞,即下载过程不阻塞其他进程

                             延迟脚本:defer和async属性都是并行下载,下载过程不阻塞,区别在于执行时机,async是下载完成后立即执行,defer是等页面加载完成后在执行,defer仅当src属性声明时生效

                              动态脚本:动态添加script标签,返回的代码通常会立即执行,所以,为了确保脚本下载完成且准备就绪后才执行,须侦听load事件。将script添加到head中比添加到body中更保险。

    代码优化:

    作用域:

    访问当前作用域之外的变量时间会增加,所以访问全局变量总是比访问局部变量更慢,因为需要遍历作用域链,只要能减少花费在作用域链上的时间,就能增加脚本的整体性能

    减少DOM操作:

    DOM操作是脚本中最消耗性能的一类操作,例如:增删改元素或者对DOM集合进行操作,如果脚本中包含大量DOM操作则要注意-------▼

    • 限制使用JavaScript来修饰网页布局,把针对访问元素的应用缓存起来,有时,当你网站依赖大量的DOM改动。就应该限制你的标记
    • DOM操作好需要考虑浏览器的Reflow(回流)和Repaint(重绘),因为这个都是需要消耗资源的

    网络请求:

    减少HTTP请求:请求过多,浏览器会分批进行请求,增加用户等待时间

    合理设置http缓存: 不会向服务器发送请求,直接从缓存中读取资源

    2.ES6新特性有哪些?

    箭头函数,let,const,promise, for...of循环 ,展开运算符...等

    箭头函数:是匿名函数,不能作为构造函数,不能使用new,箭头函数没有原型属性,箭头函数不绑定arguments取而代之用reset参数,通过call或者apply方法调用,传递一个参数对this无影响

    延伸到--------arguments:本身就是一个类数组,用来收集参数的,调用的时候能通过这个拿到所有的不定参数,

    展开运算符使用场景:数组合并,进行数组拷贝,同时不更改数组let newArr = [...arr]转换argument类数组为数组

    let,const:let定义变量,const定义常量,都是块级作用域,不存在变量提升,以及不能重复声明

    for...of循环:遍历所有数组的数据结构的统一方法

    promise:一个构造函数,可以new出来实例函数,身上有resolve成功,reject,其原型对象上有.then方法,其实例都可以访问.then方法

     它也是异步操作,只能用回调函数的方法把结果回调成功回调resolve,失败调reject
    可以在对象之间传递和操作promise,帮助我们处理队列,改写了传统异步操作方法回调函数及多个请求并等待返回,.then方法中第一个回调函数成 resolve成功 第二个失败状态 reject 失败  .catch捕捉错误的信息, .all不管正确错误都返回 在ES7中 async await代替.then

    3.什么是深拷贝和浅拷贝

    浅拷贝:只复制指向某个对象的指针,不复制对象本身,新旧对象还是共享一个内存

    深拷贝:另外创建了一个一模一样的对象,新对象和原对象不共享内存,修改新对相关不会改变原对象

    浅拷贝的实现方式:object.assign() array.proptotype.concat()   Array,prototype.slice()

    深拷贝的实现方式:JSON.parse(JSON.stringify()) 以及递归方法

    4.JS数据类型有哪些

    基本数据类型:Number String Boolean Null Undefined Symbol

    对象数据类型:object  

    同一个Array和Object赋值给两个不同变量时,变量指的是同一个内存地址,所以造成改变其中一个,也会改变另一个变量,而在项目中,有时候需要两个变量互补影响就需要使用到拷贝(深浅拷贝)

    5.vue实现路由按需加载(路由懒加载)的3中方式

    vue异步组件(此种情况下一个组件生成一个js文件)

    /* vue异步组件技术 */
    {
      path: '/home',
      name: 'home',
      component: resolve => require(['@/components/home'],resolve)
    },{
      path: '/index',
      name: 'Index',
      component: resolve => require(['@/components/index'],resolve)
    },{
      path: '/about',
      name: 'about',
      component: resolve => require(['@/components/about'],resolve)
    } 

    使用import()

    // 下面2行代码,没有指定webpackChunkName,每个组件打包成一个js文件。
    /* const Home = () => import('@/components/home')
    const Index = () => import('@/components/index')
    const About = () => import('@/components/about') */
    // 下面2行代码,指定了相同的webpackChunkName,会合并打包成一个js文件。 把组件按组分块
    const Home =  () => import(/* webpackChunkName: 'ImportFuncDemo' */ '@/components/home')
    const Index = () => import(/* webpackChunkName: 'ImportFuncDemo' */ '@/components/index')
    const About = () => import(/* webpackChunkName: 'ImportFuncDemo' */ '@/components/about')
    {
      path: '/about',
      component: About
    }, {
      path: '/index',
      component: Index
    }, {
      path: '/home',
      component: Home
    }

    .webpack提供require.ensure()(这种情况下,多个路由指定相同的chunkName,会合并打包成一个js文件)

    /* 组件懒加载方案三: webpack提供的require.ensure() */
    {
      path: '/home',
      name: 'home',
      component: r => require.ensure([], () => r(require('@/components/home')), 'demo')
    }, {
      path: '/index',
      name: 'Index',
      component: r => require.ensure([], () => r(require('@/components/index')), 'demo')
    }, {
      path: '/about',
      name: 'about',
      component: r => require.ensure([], () => r(require('@/components/about')), 'demo-01')
    }

    6.vue-router路由的两种模式

    hash 模式:

    # 后面的 hash 值的变化,并不会导致浏览器向服务器发出请求,浏览器不发出请求,也就不会刷新浏览器,每次 hash 值的变化会触发 hashchange 事件。


    history 模式:

    利用了 HTML5 中新增的 pushState() 和 replaceState() 方法。这两个方法应用于浏览器的历史记录栈,在当前已有的 back、forward、go 的基础之上,它们提供了对历史记录进行修改的功能。只是当它们执行修改时,虽然改变了当前的 URL,但浏览器不会立即向后端发送请求。


    二者区别:

    前面的hashchange,你只能改变#后面的url片段。而pushState设置的新URL可以是与当前URL同源的任意URL,history模式则会将URL修改得就和正常请求后端的URL一样,后端未有对应路由就404,history一刷新就请求后端

    vue-router有哪几种导航钩子?
    第一种:全局的路由router.beforeEach(to,from,next),和afterEach作用:跳转前进行判断拦截。
    第二种:组件内的钩子beforeRouteEnter(to,from,next){};
    第三种:单独路由独享组件{path:'',name:'',cpmponent:,beforenter(){}}

    这三个参数 to 、from 、next 分别的作用:

    to: Route,代表要进入的目标,它是一个路由对象

    from: Route,代表当前正要离开的路由,同样也是一个路由对象

    next: Function,这是一个必须需要调用的方法,而具体的执行效果则依赖 next 方法调用的参数

    next():进入管道中的下一个钩子,如果全部的钩子执行完了,则导航的状态就是 confirmed(确认的)
    next(false):这代表中断掉当前的导航,即 to 代表的路由对象不会进入,被中断,此时该表 URL 地址会被重置到 from 路由对应的地址
    next(‘/’) 和 next({path: ‘/’}):在中断掉当前导航的同时,跳转到一个不同的地址
    next(error):如果传入参数是一个 Error 实例,那么导航被终止的同时会将错误传递router.onError() 注册过的回调
     

    7.$router与$route的区别

    $route从当前router跳转对象里面可以获取name、path、query、params等(<router-link>传的参数由 this.$route.query或者 this.$route.params 接收)
    $router为VueRouter实例。想要导航到不同URL,则使用$router.push方法;返回上一个history也是使用$router.go方法

    8.call、apply、bind三者的用法和区别

    都是改变this指向的方法

    apply和call的区别在于传参方式:call是以逗号的形式分开的,而apply的参数是数组方式

    bind语法和call一样,区别在于立即执行还是等待执行

    9.浅谈什么是原型链

    JavaScript中的每个对象都有一个prototype属性,我们称之为原型,而原型的值也是一个对象,因此它也有自己的原型,这样就串联起来了一条原型链,原型链的链头是object,它的prototype比较特殊,值为null。

    10.JS实现继承的6种方式

    继承的话首先需要一个父类

    // 定义一个动物类
    function Animal (name) {
      // 属性
      this.name = name || 'Animal';
      // 实例方法
      this.sleep = function(){
        console.log(this.name + '正在睡觉!');
      }
    }
    // 原型方法
    Animal.prototype.eat = function(food) {
      console.log(this.name + '正在吃:' + food);
    };

    1.原型链继承:核心-将父类的实例作为子类的原型

    function Cat(){ 
    }
    Cat.prototype = new Animal();
    Cat.prototype.name = 'cat';
    
    // Test Code
    var cat = new Cat();
    console.log(cat.name);
    console.log(cat.eat('fish'));
    console.log(cat.sleep());
    console.log(cat instanceof Animal); //true 
    console.log(cat instanceof Cat); //true

    特点:

    1. 非常纯粹的继承关系,实例是子类的实例,也是父类的实例
    2. 父类新增原型方法/原型属性,子类都能访问到
    3. 简单,易于实现

    缺点:

    1. 要想为子类新增属性和方法,必须要在new Animal()这样的语句之后执行,不能放到构造器中
    2. 无法实现多继承
    3. 来自原型对象的所有属性被所有实例共享(来自原型对象的引用属性是所有实例共享的)
    4. 创建子类实例时,无法向父类构造函数传参

    2.构造继承:核心-使用父类的构造函数来增强子类实例,等于是复制父类的实例属性给子类(没用到原型)

    function Cat(name){
      Animal.call(this);
      this.name = name || 'Tom';
    }
    
    // Test Code
    var cat = new Cat();
    console.log(cat.name);
    console.log(cat.sleep());
    console.log(cat instanceof Animal); // false
    console.log(cat instanceof Cat); // true

    特点:

    1. 解决了1中,子类实例共享父类引用属性的问题
    2. 创建子类实例时,可以向父类传递参数
    3. 可以实现多继承(call多个父类对象)

    缺点:

    1. 实例并不是父类的实例,只是子类的实例
    2. 只能继承父类的实例属性和方法,不能继承原型属性/方法
    3. 无法实现函数复用,每个子类都有父类实例函数的副本,影响性能

    3.实例继承:核心-为父类实例添加新特性,作为子类实例返回

    function Cat(name){
      var instance = new Animal();
      instance.name = name || 'Tom';
      return instance;
    }
    
    // Test Code
    var cat = new Cat();
    console.log(cat.name);
    console.log(cat.sleep());
    console.log(cat instanceof Animal); // true
    console.log(cat instanceof Cat); // false

    特点:

    1. 不限制调用方式,不管是new 子类()还是子类(),返回的对象具有相同的效果

    缺点:

    1. 实例是父类的实例,不是子类的实例
    2. 不支持多继承

    4.拷贝继承

    function Cat(name){
      var animal = new Animal();
      for(var p in animal){
        Cat.prototype[p] = animal[p];
      }
     
      // Cat.prototype.name = name || 'Tom'; 错误的语句,下一句为正确的实现
      this.name = name || 'Tom';
    }
    
    // Test Code
    var cat = new Cat();
    console.log(cat.name);
    console.log(cat.sleep());
    console.log(cat instanceof Animal); // false
    console.log(cat instanceof Cat); // true

    特点:

    1. 支持多继承

    缺点:

    1. 效率较低,内存占用高(因为要拷贝父类的属性)
    2. 无法获取父类不可枚举的方法(不可枚举方法,不能使用for in 访问到)

    5.组合继承:核心-通过调用父类构造,继承父类的属性并保留传参的优点,然后通过将父类实例作为子类原型,实现函数复用

    function Cat(name){
      Animal.call(this);
      this.name = name || 'Tom';
    }
    Cat.prototype = new Animal();
    
    //组合继承也是需要修复构造函数指向的。
    
    Cat.prototype.constructor = Cat;
    
    // Test Code
    var cat = new Cat();
    console.log(cat.name);
    console.log(cat.sleep());
    console.log(cat instanceof Animal); // true
    console.log(cat instanceof Cat); // true

    特点:

    1. 弥补了方式2的缺陷,可以继承实例属性/方法,也可以继承原型属性/方法
    2. 既是子类的实例,也是父类的实例
    3. 不存在引用属性共享问题
    4. 可传参
    5. 函数可复用

    缺点:

    1. 调用了两次父类构造函数,生成了两份实例(子类实例将子类原型上的那份屏蔽了)

    6.寄生组合继承:核心-通过寄生方式,砍掉父类的实例属性,这样,在调用两次父类的构造的时候,就不会初始化两次实例方法/属性,避免的组合继承的缺点

    function Cat(name){
      Animal.call(this);
      this.name = name || 'Tom';
    }
    (function(){
      // 创建一个没有实例方法的类
      var Super = function(){};
      Super.prototype = Animal.prototype;
      //将实例作为子类的原型
      Cat.prototype = new Super();
    })();
    
    // Test Code
    var cat = new Cat();
    console.log(cat.name);
    console.log(cat.sleep());
    console.log(cat instanceof Animal); // true
    console.log(cat instanceof Cat); //true

    特点:

    1. 堪称完美

    缺点:

    1. 实现较为复杂
    展开全文
  • TortoiseSVN-1.6.4.16808-cn(SVN客户端1.6.4中文版)

    千次下载 热门讨论 2011-02-14 14:55:12
    你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。  某些版本控制系统也是软件配置管理(SCM)系统,...
  • TortoiseSVN1.6.17-32位

    热门讨论 2014-12-04 16:28:57
    你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。 某些版本控制系统也是软件配置管理(SCM)系统,这种...
  • TortoiseSVN-1.8.1 win64位

    2013-07-27 18:27:43
    你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。 某些版本控制系统也是软件配置管理(SCM)系统,这种...
  • 你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。 某些版本控制系统也是软件配置管理(SCM)系统,...
  • TortoiseSVN

    2012-01-16 11:32:45
    你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。 某些版本控制系统也是软件配置管理(SCM)系统,这种...
  • 你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。  某些版本控制系统也是软件配置管理(SCM)系统,...
  • 你可以将文件恢复到过去的版本,并且可以通过检查历史知道数据做了哪些修改,谁做的修改。这就是为什么许多人将 Subversion 和版本控制系统看作一种“时间机器”。  某些版本控制系统也是软件配置管理(SCM)系统,...
  • GetCompressedFileSize 判断一个压缩文件在磁盘上实际占据的字节数 GetCurrentDirectory 在一个缓冲区中装载当前目录 GetDiskFreeSpace 获取与一个磁盘的组织有关的信息,以及了解剩余空间的容量 ...
  • 计算机应用技术 实用手册 Xnllz 2011.7.29 ...时候在系统的任务栏你见不到小喇叭可能在这里被关闭了,即:[DISABLED],遇到这种情况可从新进入COMS把此项打开即可,即:[ENABLED]。 SATA...
  • 一则错误响应指出客户端应刷新其目录列表,以确定哪些文件和子目录被删除,哪些未被删除。 + 更改了 Windows 链接支持,从而当遇到 Windows .LNK 文件时,对于 SIZE 命令和传输操作,将其作为列表显示时所引用的文件...
  • 每个评论都状态记录,因此您可以轻松查看 Akismet 发现或清除哪些评论与哪些评论被主持人判断是否是垃圾评论。 在评论正文中,显示 URL 与显示隐藏或误导性的连结。 主持人可以看到每个用户的批准注释数。 丢弃...
  • Serv-U FTP Server v7.0.0.2

    2009-08-03 13:13:25
    一则错误响应指出客户端应刷新其目录列表,以确定哪些文件和子目录被删除,哪些未被删除。 + 更改了 Windows 链接支持,从而当遇到 Windows .LNK 文件时,对于 SIZE 命令和传输操作,将其作为列表显示时所引用的文件...
  • 手机 pdf 阅读器

    2009-02-12 23:00:29
    增加了编辑功能(尽管没有限制文件大小,但请别编辑过大的文件,另外,为了提高速度,不进行全文排版,时候表现可能会有些不习惯),以后会进一步完善 启动时,会自动识别NOKIA、SONYERICSSON、MOTO的手机,不再要求...
  • 10、问:IMETool 的修复功能有哪些,为何在界面中找不到? 答:IMETool 可以修复一些常见的输入法混乱情况:如: ⑴某输入法已经卸载,但仍在输入法列表中残留了条目。 ⑵某输入法已经卸载,但其先前设置的热键并...
  • flash shiti

    2014-03-14 10:32:41
    文件夹中,则将被识别为图像序列将是下面哪些: □ A. picture001.bmp □ B. picture002.bmp □ C. picture003.bmp □ D. picture-001.bmp 13. 如果要让Flash 同时对若干个对象产生渐变动画,则必须将这些对象放置在...
  • 经常会有朋友想知道有哪些 Apps 或 服务 是值得付费来使用的,或者有哪些产品是可以提升生活品质的, 于是创建了 BestApp 项目,旨在让推荐变得有章可循 总目录 欢迎大家推荐好的 App/产品 加入,请Star、Pull ...
  • PowerPoint.2007宝典 8/10

    2012-04-01 18:39:23
    12.4.3 指定要查找哪些媒体文件类型 240 12.5 使用剪贴画收藏集 241 12.5.1 打开和浏览“剪辑管理器” 241 12.5.2 使用“剪辑管理器”插入剪贴画 241 12.5.3 创建和删除文件夹 242 12.5.4 在收藏集之间...
  • PowerPoint.2007宝典 10/10

    2012-04-01 18:45:00
    12.4.3 指定要查找哪些媒体文件类型 240 12.5 使用剪贴画收藏集 241 12.5.1 打开和浏览“剪辑管理器” 241 12.5.2 使用“剪辑管理器”插入剪贴画 241 12.5.3 创建和删除文件夹 242 12.5.4 在收藏集之间...
  • PowerPoint.2007宝典 9/10

    2012-04-01 18:42:38
    12.4.3 指定要查找哪些媒体文件类型 240 12.5 使用剪贴画收藏集 241 12.5.1 打开和浏览“剪辑管理器” 241 12.5.2 使用“剪辑管理器”插入剪贴画 241 12.5.3 创建和删除文件夹 242 12.5.4 在收藏集之间...
  • PowerPoint.2007宝典 7/10

    2012-04-01 18:36:57
    12.4.3 指定要查找哪些媒体文件类型 240 12.5 使用剪贴画收藏集 241 12.5.1 打开和浏览“剪辑管理器” 241 12.5.2 使用“剪辑管理器”插入剪贴画 241 12.5.3 创建和删除文件夹 242 12.5.4 在收藏集之间...
  • PowerPoint.2007宝典 6/10

    2012-04-01 18:34:41
    12.4.3 指定要查找哪些媒体文件类型 240 12.5 使用剪贴画收藏集 241 12.5.1 打开和浏览“剪辑管理器” 241 12.5.2 使用“剪辑管理器”插入剪贴画 241 12.5.3 创建和删除文件夹 242 12.5.4 在收藏集之间...

空空如也

空空如也

1 2 3 4
收藏数 62
精华内容 24
关键字:

压缩文件图标有哪些