精华内容
下载资源
问答
  • Linux系统下,如何获取一个文件夹内所有的内容,并且打印文件大小和最后修改日期,并用tree的方式打印1. 解题思路二. 代码解析三. 任务总结 1. 解题思路 二. 代码解析 头文件 #include <stdio.h> #...

    Linux系统下,如何获取一个文件夹内所有的内容,并且打印出文件大小和最后修改日期,并用tree的方式打印

    1. 解题思路

    在这里插入图片描述

    二. 代码解析

    • 头文件
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <unistd.h>
    #include <sys/stat.h>
    #include <dirent.h>
    #include <time.h>
    
    
    • 主函数
    int main(int argc, char const *argv[])
    {
    	char file_path[100] = {0};
    
    	printf("请输入你要查看的目录:\n");
    	scanf("%s", file_path);
    
    	tree(file_path);
    	return 0;
    }
    
    
    • 功能函数
    //用来获取目录下的文件或者子目录
    struct dirent *getdir(DIR *pDIR)
    {
    	struct dirent *mdirent = NULL;
    
    	while (mdirent = readdir(pDIR))
    	{
    		//由于每个目录存在'.'和'..',所以需要避开
    		if (*(mdirent->d_name) != '.')  //对字符串解引用得到单个字符
    		{
    			break;
    		}
    	}
    
    	return mdirent;
    }	
    
    //定义一个用来现实tree的数组
    char list[100] = {0};
    
    
    //将时间戳转换成时间
    char *time_change(time_t t, char *nowtime)
    {  
       	struct tm *lt;
       	lt = localtime(&t);
    
        memset(nowtime, 0, sizeof(nowtime));  
        strftime(nowtime, 24, "%Y-%m-%d %H:%M:%S", lt);    
    }
    
    //循环遍历并且打印出目录结构
    int show_all_file(char *dir, int depth)
    {
    	DIR *pDIR = NULL;
    	struct dirent *pdirent = NULL, *pdirent_prev = NULL;
    	char path[100] = {0}, buf[100] = {0}, time_a[100] = {0};
    	struct stat dir_info, t_info;  //通过文件名来获取文件的信息
    	int flag = 1;
    
    	//判断是否能获取到目录的状态
    	if (stat(dir, &dir_info) == -1)
    	{
    		printf("目录不存在\n");
    		return -1;
    	}
    
    	//判断要打开的是不是普通目录
    	if (!S_ISDIR(dir_info.st_mode))
    	{
    		printf("输入的目录有错误!\n");
    		return -1;
    	}
    
    	//打开目录,并返回结构体指针给pDIR
    	pDIR = opendir(dir);
    		
    	if (pDIR == NULL)
    	{
    		printf("打开目录失败!\n");
    		return -1;
    	}
    
    	pdirent_prev = getdir(pDIR);
    
    	if (pdirent_prev == NULL)
    	{
    		return 0;
    	}
    	pdirent = getdir(pDIR);
    
    	list[depth] = 1;
    	do
    	{
    		for (int i = 0; i < depth; i++)
    		{
    			if (list[i])
    			{
    				printf("│ ");
    			}
    			else
    			{
    				printf(" ");
    			}
    		}
    
    		if (pdirent)
    		{
    			printf("├─");
    		}
    		else
    		{
    			printf("└─");
    			list[depth] = 0;
    		}
    
    		//将每个文件的路径结合到一起
    		memset(buf, 0, 100);
    		strcpy(buf, dir);
    		strcat(buf, "/");
    		strcat(buf, pdirent_prev->d_name );
    		stat(buf, &t_info);
    		time_change(t_info.st_mtime, time_a);
    		printf(" %s  data_size: %ld kb  last_mod_time:%s\n", pdirent_prev->d_name, t_info.st_size, time_a);
    
    
    		if (pdirent_prev->d_type == DT_DIR)
    		{
    			memset(path, 0, 100);
    			strcpy(path, dir);
    			strcat(path, "/");
    			strcat(path, pdirent_prev->d_name );
    
    			show_all_file(path, depth+1);
    		}
    
    		pdirent_prev = pdirent;
    
    		if (pdirent)
    		{
    			pdirent = getdir(pDIR);
    		}
    	} while (pdirent_prev != NULL);
    
    	closedir(pDIR);
    	return 0;
    
    }
    
    
    void tree(char *file_path)
    {
    	if (file_path == NULL)
    	{
    		printf("路径打开失败\n");
    		exit(1);
    	}
    
    	show_all_file(file_path, 1);
    }
    
    

    三. 任务总结

    通过这个简单的任务可以很好的掌握系统编程中对文件夹的操作,以及怎样获取文件夹以及文件夹内容的状态和信息。

    展开全文
  • 1、 log4j 打印sql 要把日志等级调成debug才会显示sql log4j.rootLogger=info,Console   Console log4j.appender.Console=org.apache.log4j.ConsoleAppender log4j.appender.Console.layout=org.apache....

    1、 log4j 打印sql

    要把日志等级调成debug才会显示sql
    log4j.rootLogger=info,Console  
      
    Console  
    log4j.appender.Console=org.apache.log4j.ConsoleAppender  
    log4j.appender.Console.layout=org.apache.log4j.PatternLayout  
    log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n  


    log4j.logger.java.sql.ResultSet=debug   
    #log4j.logger.org.apache=INFO  
    log4j.logger.java.sql.Connection=debug  
    log4j.logger.java.sql.Statement=debug
    log4j.logger.java.sql.PreparedStatement=debug 

    2、log4j 按日期生成文件

      在log4j中这两种方式的实现都很简单,只要在配置文件中设置即可。

    一、按照一定时间产生日志文件,配置文件如下:
        # Set root logger level to ERROR and its only appender to A1.
        log4j.rootLogger=ERROR,R

        # R is set to be a DailyRollingFileAppender.
        log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

        log4j.appender.R.File=backup.log
        log4j.appender.R.DatePattern = '.'yyyy-MM-dd
        log4j.appender.R.layout=org.apache.log4j.PatternLayout
        log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
       
        以上配置是每天产生一个备份文件。其中备份文件的名字叫backup.log。
        具体的效果是这样:当天的日志信息记录在backup.log文件中,前一天的记录在名称为  backup.log.yyyy-mm-dd 的文件中。
        类似的,如果需要每月产生一个文件可以修改上面的配置:
        将
          log4j.appender.R.DatePattern = '.'yyyy-MM-dd
        改为
            log4j.appender.R.DatePattern = '.'yyyy-MM

    二、根据日志文件大小自动产生新日志文件
        配置文件内容如下:

    # Set root logger level to ERROR and its only appender to A1.
    log4j.rootLogger=ERROR,R

    # R is set to be a RollingFileAppender.
    log4j.appender.R=org.apache.log4j.RollingFileAppender

    log4j.appender.R.File=backup.log
    #log4j.appender.R.MaxFileSize=100KB

    # Keep one backup file
    log4j.appender.R.MaxBackupIndex=1
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n


    其中:
    #日志文件的大小
    log4j.appender.R.MaxFileSize=100KB
    # 保存一个备份文件
    log4j.appender.R.MaxBackupIndex=1


    3、 log4j 日志文件保存位置

    以DailyRollingFileAppender 为例:假设每天一个日志文件

    有以下设置:

    log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender 
    log4j.appender.A1.File=app.log
    log4j.appender.A1.DatePattern='.'yyyy-MM-dd
    log4j.appender.A1.layout=org.apache.log4j.PatternLayout
    log4j.appender.A1.layout.ConversionPattern=%d %5p - %c -%-4r [%t]    - %m%n

    此时生成日志文件将位于tomcat的bin目录下,如要将日志文件保存在 :根目录/web-info/logs/下,个人有以下4种解决方案:
    1 绝对路径
    log4j.appender.A1.File=D:\apache-tomcat-6.0.18/webapps/项目/WEB-INF/logs/app.log
    但这种写法灵活性很差

    以下3中使用相同的设置原理: jvm的环境变量
     2:spring的Log4jConfigListener
    通过以下配置:
    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>webApp.root</param-value>
      </context-param>
     <context-param>
      <param-name>log4jConfigLocation</param-name>
        <param-value>classpath:log4j.properties</param-value>
     </context-param>
    <listener>  
         <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>  
     </listener>
    ...
    log4j.appender.logfile.File=${webApp.root}/WEB-INF/logs/app.log
    ...
    来解决
     2:使用已有jvm变量:
    例如:
        log4j.appender.logfile.File=${user.home}/logs/app.log
      日志将位于:例如windows:C:\Documents and Settings\joe\logs\app.log

    3 自己设置目录,也就是在项目启动时通过System.setProperty设置
    通过实现ServletContextListener来解决:例如

    public class log4jlistener implements ServletContextListener {

     public static final String log4jdirkey = "log4jdir";
     public void contextDestroyed(ServletContextEvent servletcontextevent) {
      System.getProperties().remove(log4jdirkey);

     }

     public void contextInitialized(ServletContextEvent servletcontextevent) {
      String log4jdir = servletcontextevent.getServletContext().getRealPath("/");
      //System.out.println("log4jdir:"+log4jdir);
      System.setProperty(log4jdirkey, log4jdir);

     }

    }
    web.xml配置:

    <listener>
      <listener-class>com.log4j.log4jlistener</listener-class>
     </listener>

    log4j.prtperties 配置:
    log4j.appender.A1.File=${log4jdir}/WEB-INF/logs/app1.log
    展开全文
  • -full-time -lt | tail -n -$total | awk '{print $6,$7}') # str字符串长度 let len=${#str} # 文件日期信息字符串长度 let cot=len/total # 截取字符串str转为数组date for((i=0;i 3、for循环打印文件夹下所有文件...

    1、Linux打印实现 

    ls --full-time -lt | tail -n -$(ls | wc -l) | awk '{print $6,$7}'

    2、shell 脚本数组实现

    echo "-----------------"
    
    # 文件个数
    let "total=$(ls | wc -l)"
    # 当前文件夹所有文件的日期信息
    str=$(ls --full-time -lt | tail -n -$total | awk '{print $6,$7}')
    # str字符串长度
    let len=${#str}
    # 文件日期信息字符串长度
    let cot=len/total
    # 截取字符串str转为数组date
    for((i=0;i<total;i++));do
        let start=i*30
        date[$i]=${str:$start:30}
    done
    #echo ${date[*]}
    # for循环变量数组date
    for((i=0;i<${#date[*]};i++));do
        echo ${date[$i]}
    done
    
    echo "================="
    

    3、for循环打印文件夹下所有文件的Modify date

    #!/bin/bash 
    
    echo "--------------------"
    
    # 获取指定目录下的文件数量
    total=$(ls /home/hive/observation/tablename/)
    # 文件路径
    dir="/home/hive/observation/tablename/"
    
    for i in ${total[@]};do
        Modify=$(stat $dir$i | sed -n '7p' | awk '{print $2,$3}')
        echo $Modify
    done
    
    echo "===================="

     

    展开全文
  • 可以批量打印文件所在目录下的所有Excel文件,不含子目录,支持按文件名或修改日期升序或降序排列。Excel文件需要预先设置版式。
  • 项目目录结构:lomback版本号1.18.10【lomback日期和大小轮询配置在1.1.7才出来的】 lomback配置文件: 关键点: <!-- 循环政策:基于时间和大小政策创建日志文件 --> <rollingPolicy class="ch.qos....

    项目目录结构:lomback版本号1.18.10【lomback日期和大小轮询配置在1.1.7才出来的】

    lomback配置文件:

    关键点:

    <!-- 循环政策:基于时间和大小政策创建日志文件 -->
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
        <!--日志文件输出的文件名 按日志大小分割一定要带:【%i】 -->
        <FileNamePattern>${log.path}/${log.name}.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
        <!--日志文件最大的大小 -->
        <maxFileSize>1MB</maxFileSize>
        <!--日志文件保留个数 -->
        <!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每个天滚动,且<maxHistory>是3,则只保存最近4天的文件,删除之前的旧文件。 -->
        <MaxHistory>3</MaxHistory>
    </rollingPolicy>
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- 日志级别排序为: TRACE < DEBUG < INFO < WARN < ERROR 如果设置为WARN,则低于WARN的信息都不会输出 -->
    <!-- scan:默认为true。作用:当设置为true时,如果配置文件发生改变,将会被重新加载。 -->
    <!-- scanPeriod:默认时间间隔为1分钟,默认单位是毫秒,当scan为true时,此属性生效。作用:检测配置文件是否有修改时间间隔。 -->
    <!-- debug:默认为false。作用:当此属性为true时,将打印出logback内部日志信息,实时查看logback运行状态。 -->
    <configuration scan="true" scanPeriod="10 seconds">
    
        <!-- contextName用来设置上下文名称。每个logger都关联到logger上下文,默认上下文名称为default。 -->
        <contextName>dokit</contextName>
    
        <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径 -->
        <!-- 用来定义变量值,有两个属性name和value。 通过<property>定义的值被插入到logger上下文中,可以使"${}"来使用变量 -->
        <property name="log.path" value="./log" />
        <property name="log.name" value="dokit" />
        
        <!--日志编码格式为 UTF-8 -->
        <property name="log.charset" value="utf-8" />
        <!--文件输出打印格式-->
        <property name="log.patternFile" value="%contextName- %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n" />
    
        <!-- 1、控制台输出 -->
        <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
            <encoder>
                <!--black 黑色   red 红色 green 绿色 highlight 高亮  boldMagenta 粗体 %d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
                <pattern>%black(%contextName-) %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %gray(%msg%n)</pattern>
                <charset>${log.charset}</charset>
            </encoder>
        </appender>
    
        <!-- 2、按照轮巡生成日志文件 -->
        <appender name="LOG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <encoder>
                <pattern>${log.patternFile}</pattern>
                <charset>${log.charset}</charset>
            </encoder>
            
            <!-- 循环政策:基于时间政策创建日志文件 -->
            <!--<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                &lt;!&ndash;日志文件输出的文件名 &ndash;&gt;
                <FileNamePattern>${log.path}/${log.name}.%d{yyyy-MM-dd}.log</FileNamePattern>
                &lt;!&ndash;日志文件保留天数 &ndash;&gt;
                &lt;!&ndash; 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每个月滚动,且<maxHistory>是6,则只保存最近6个月的文件,删除之前的旧文件。 &ndash;&gt;
                <MaxHistory>15</MaxHistory>
            </rollingPolicy>-->
    
            <!-- 循环政策:基于时间和大小政策创建日志文件 -->
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <!--日志文件输出的文件名 按日志大小分割一定要带:【%i】 -->
                <FileNamePattern>${log.path}/${log.name}.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
                <!--日志文件最大的大小 -->
                <maxFileSize>1MB</maxFileSize>
                <!--日志文件保留个数 -->
                <!-- 可选节点,控制保留的归档文件的最大数量,超出数量就删除旧文件。假设设置每个天滚动,且<maxHistory>是3,则只保存最近4天的文件,删除之前的旧文件。 -->
                <MaxHistory>3</MaxHistory>
            </rollingPolicy>
            <!-- 此日志文档只记录INFO级别的 -->
            <!-- LevelFilter: 等级过滤器。当日志级别等于或高于该等级时,过滤器返回NEUTRAL;当日志级别低于临界值时,日志会被拒绝。 -->
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>INFO</level>
            </filter>
        </appender>
    
        <!-- 2.1 level为ERROR日志,时间和大小滚动输出 -->
        <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
            <encoder>
                <pattern>${log.patternFile}</pattern>
                <charset>${log.charset}</charset>
            </encoder>
            <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
                <FileNamePattern>${log.path}/${log.name}-error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
                <maxFileSize>1MB</maxFileSize>
                <MaxHistory>3</MaxHistory>
            </rollingPolicy>
            <filter class="ch.qos.logback.classic.filter.LevelFilter">
                <level>ERROR</level>
                <onMatch>ACCEPT</onMatch>
                <onMismatch>DENY</onMismatch>
            </filter>
        </appender>
    
        <!-- 3、日志输出 -->
        <!-- 3.1开发环境:INFO打印到控制台,ERROR日志生成文件 -->
        <!--<root level="INFO">
            <appender-ref ref="CONSOLE" />
            <appender-ref ref="ERROR_FILE" />
        </root>-->
    
        <!-- 3.2生产环境:INFO和ERROR日志生成文件;DEBUG文件生成同理 -->
        <root level="INFO">
            <appender-ref ref="LOG_FILE" />
            <appender-ref ref="ERROR_FILE" />
        </root>
    </configuration>
    

    通过修改计算机系统时间测试结果展示:

    当天日志超过1MB时,会自动生成 fileName.i+1.log

    且轮巡4天后,之前的fileName.*.log日志清除,

    备注:如果当天没有日志生成,则保留有日志生成的4天日志,比如上例的dokit-error日志文件

     

    参考案例:

    https://blog.csdn.net/weixin_34392435/article/details/92543605?utm_medium=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-2.nonecase&depth_1-utm_source=distribute.pc_relevant_bbs_down.none-task-blog-baidujs-2.nonecase logback 按时间和大小生成日志不生效的问题 

    等等

     

    展开全文
  • 想在pdf中实现,用户打印该pdf文件时,打印出的文件或纸上能体现当下的打印日期,和 文件所在的路径(或含路径的全名)。 刚开始入坑,请详细指导一下从设置域到动作代码的全部过程
  • 1. 实现 fckeditor 按日期分目录的形式存放上传的文件,比如今天是 2015年5月5日,那么今天上传的文件都放在这个目录里面去,明天上传的则自动创建并放在类似 2015-05-06 这样的目录里面去。 (1)找到 editor\...
  •   同事求助,工作中经常有一大批Excel表单需要打印,并且打印出来表单是有顺序要求,文件名已经排了顺序,打印也要按这个顺序打。问我有没有什么快捷的办法。 初次解决   刚开始没仔细想这个问题,无非就是...
  • 我们在脚本编写中会遇到将日志,打印等内容输出到文件中,基本都会遇到一种最常用的需求,文件名以日期为名称 脚本编写 #/bin/bash nowDate=$(date +%F) echo "hello world" >> /log/$nowDate.txt 查看...
  • 详细探究logback不打印日志到文件的问题分析与案例演示,并提供官网bug的提交链接 环境与配置 问题 解决 原因 测试源码 测试结果 深入:线程出异常是否还会打印日志 环境与配置 使用maven构建的,...
  • stat文件后最后三行日期,Access时最近访问的时间,在访问此文件时会随时修改这个文件,Modify是最近更改的时间,是指最近修改文件内容的时间,change式最近的改动时间,是指最近修改INode的时间,例如文件类型目录...
  • Directory Lister Pro是一款款非常方便小巧的文件夹列表创建打印工具,通过Directory Lister (文件夹打印)可选择显示目录名,目录大小,目录的文件数,子目录,文件序号,文件路径,文件名称,扩展名,大小,日期,时间,类型, ...
  • ![图片说明](https://img-ask.csdn.net/upload/201606/07/1465291305_264558.png) 求前辈帮忙写下
  • 目录 需求分析 解决方案 powershell脚本实现详细步骤 ...今天通过powershell脚本,实现一个对共享打印机打印记录:包括打印人员、打印文件、打印时间等等信息的记录及汇总。 解决方案 打印记录会保存在w.
  • CAD文件打印为PDF文档

    2019-05-28 20:06:00
    目录 ... CAD文件打印为PDF文档 前提说明 操作方法 注意事项 标题: CAD文件打印为PDF文档 作者: 梦幻之心星 347369787@QQ.com 标签: [CAD, 打印, 转换] 目录: 软件 日期: 2019-5-28 ...
  • 去掉明细账打印的“打印日期

    千次阅读 2016-07-05 09:42:18
    使用ufo简版工具修改软件安装目录下的 ZW\REP\mxzjed.rep文件,在格式状态下将@2去掉即可。注:账页与对照表头表尾文件查找:printex表中对应表名的cRespathHead字段和cRespathTail字段。
  • springboot默认会加载classpath:logback-spring.xml文件 如果需要自定义文件名称,在application.properties中配置logging.config 选项即可 在在 src/main/resources 下创建 logback-spring.xml 文件,内容如下 .....
  • 【批处理】打印当前日期和时间

    千次阅读 2019-10-27 19:56:44
    使用批处理脚本打印当前日期和时间。
  • JAVA获取文件的创建日期

    千次阅读 2014-01-24 11:29:24
    在File的方法中,只能直接获取文件的最后修改日期,而且是以ms作为计量单位的,没有直接获取文件创建日期的方法,那是不是意味着JAVA不能获取文件的创建时间呢,答案是否定的,作为全球用使用人数最多的编程语言JAVA...
  • 但是使用单独的tomcat部署后,发现日期翻天到20181016后,会生成一个test-20181015-2.log的日志,并且往里面写日志。 最后查了半天,不是log4j2的配置问题,而是tomcat加载的问题,可以参考 ...
  • 文件动态控制log的打印,方便上线前日志打印的检查,并且如果在测试环境下,日志等级为i以上的日志都会存文件,并且文件日期命名,最大数量为5,可以配置。代码如下所示:package ...
  • date:打印或者设置系统日期和时间。 语法: date [OPTION]... [+FORMAT] date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] 选项: -s:设置日期和时间; -d:通过描述时间的字符串来显示时间; -f:...
  • shell脚本打印日期时间

    千次阅读 2019-09-21 12:09:07
    starttime=$(date +%Y-%m-%d\ %H:%M:%S) echo $starttime ttime=`date +"%Y-%m-%d %H:%M:%S"` echo $ttime 转载于:https://www.cnblogs.com/John-2011/p/9282812.html
  • 如上图,优化后nohup.out日志文件按照日期进行展示。 思路: 编写脚本,每日凌晨将前一天的日志复制到备份文件夹,并按前一天日期进行命名,然后清空原始nohup日志,这样日志只记录当天的日志。 工具: Xshell、Xftp...
  • springboot默认的日志文件是不会自动按天分割的,所以生产环境的日志文件越来越大,很不利于排错。查了很多资料最终配置如下,可以完美按天按错误等级分割日志文件,配置如下。 由于springboot采用约定优先于配置的...
  • 将运行信息打印日志到文件

    千次阅读 2017-09-18 13:19:18
    开发程序经常要从控制台当中获取程序运行的情况,最近在开发在服务器端,导师要求要记录运行信息,包括异常信息,客户连接情况等信息,但控制台观看有种种限制,如窗口过小阅读不方便,或者在服务器上通过命令行...
  • python连接打印机打印文档、图片、pdf文件

    万次阅读 多人点赞 2019-08-27 10:25:50
    引言 python连接打印机进行打印,可能根据需求的不同,使用不同的函数模块。 如果你只是简单的想打印文档,比如
  • 然后java后台利用FTPClient连接linux服务器,获取到文件的最后修改日期却是不是utc+8,而是utc! 查了些网上的资料,说的是检查tomcat或者配置linux之类的,没有解决问题。 自己调试打印发现FTPClient获取到的时间...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 140,675
精华内容 56,270
关键字:

怎样修改打印好的文件日期