fileinfo

Qt+QGIS二次开发:向shp矢量图层中添加新的字段

荒凉一梦 提交于 2020-04-28 07:38:08
添加一个新的字段到shp文件中,并且从 Excel 里导入数据到该字段。原shp文件里的字段ID应该与Excel里的字段ID一一对应才能正确的导入。下图分别是shp的字段和Excel的字段 将class字段添加到shp中去: (1)从Excel中读取数据(为了读取方便,存为.csv或者txt文件) QStringList readFromCSV(QString mfilename) { QStringList readlist; if (mfilename != "" ) { QFileInfo csvFI(mfilename); QString ext = csvFI.suffix(); if ( ext == " csv " || ext == " txt " ) { QFile *importFile = new QFile(mfilename); if ( !importFile->open(QIODevice::ReadOnly | QIODevice::Text)) { QMessageBox::information(NULL, " error " , " Cannot open import file ! " , QMessageBox::Yes | QMessageBox::No); return readlist; } readlist.clear();

C# LINQ学习笔记四:LINQ to OBJECT之操作文件目录

筅森魡賤 提交于 2020-04-26 12:26:41
本笔记摘抄自: https://www.cnblogs.com/liqingwen/p/5816051.html ,记录一下学习过程以备后续查用。 许多文件系统操作实质上是查询,因此非常适合使用LINQ方法。 一、查询具有指定属性或名称的文件 此示例演示如何查找指定目录树中具有指定文件扩展名(例如“.txt”)的所有文件,还演示如何根据创建时间返回树中最新或最旧的文件。 class Program { static void Main( string [] args) { #region LINQ 查询具有指定属性或名称的文件 // 文件路径 const string path = @" C:\Program Files (x86)\Microsoft Visual Studio\2017\ " ; // 取文件系统快照 var dir = new DirectoryInfo(path); // 该方法假定应用程序在指定路径下的所有文件夹都具有搜索权限 var files = dir.GetFiles( " *.* " , SearchOption.AllDirectories); // 创建查询 var qurey = from file in files where file.Extension == " .txt " orderby file.Name select file

C# LINQ学习笔记四:LINQ to OBJECT之操作文件目录

烂漫一生 提交于 2020-04-26 11:36:31
本笔记摘抄自: https://www.cnblogs.com/liqingwen/p/5816051.html ,记录一下学习过程以备后续查用。 许多文件系统操作实质上是查询,因此非常适合使用LINQ方法。 一、查询具有指定属性或名称的文件 此示例演示如何查找指定目录树中具有指定文件扩展名(例如“.txt”)的所有文件,还演示如何根据创建时间返回树中最新或最旧的文件。 class Program { static void Main( string [] args) { #region LINQ 查询具有指定属性或名称的文件 // 文件路径 const string path = @" C:\Program Files (x86)\Microsoft Visual Studio\2017\ " ; // 取文件系统快照 var dir = new DirectoryInfo(path); // 该方法假定应用程序在指定路径下的所有文件夹都具有搜索权限 var files = dir.GetFiles( " *.* " , SearchOption.AllDirectories); // 创建查询 var qurey = from file in files where file.Extension == " .txt " orderby file.Name select file

restful api上传文件(基础)-springboot

一个人想着一个人 提交于 2020-04-25 22:27:25
基于restful api格式的文件上传(只是上传到本地): package com.nxz.controller; import com.nxz.entity.FileInfo; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import java.io.File; import java.io.IOException; import java.util.Date; @RestController @RequestMapping( "/file" ) public class FileController { @PostMapping public FileInfo update( MultipartFile file) throws IOException { System.out.println(file.getName()); System

C#:使用FastReport打印带图片传参模板的实现方法

纵饮孤独 提交于 2020-04-25 16:21:26
大家都知道,C#打印图片可以直接调用PrintDocument控件的PrintPage事件,通过画刷对image对象直接进行绘制。但是这种方法存在局限,例如如果打印的图片需要按纸张大小进行缩放的话,那么图片显示比例和图片显示位置等都需要动态计算,如果还要添加水印或者其他的图片操作,基本上要添加很多额外的逻辑,并且效率不高,严重限制了程序的性能。如果要在图片上绘制个性化的文本或者定制其他内容,则基本没办法实现,严重限制了程序的可扩展性和可维护性。 常规写法如下所示: 1 // 例如这是PrintDocument的PrintPage事件 2 Graphics g = null ; 3 g = e.Graphics; 4 g.SmoothingMode = SmoothingMode.HighQuality; // 设置画刷高质量 5 6 // 绘制已经处理过的Bitmap对象(假设它已经从服务器或者某个地方下载下来并且已经算好了在纸张上指定的打印位置) 7 // 此种写法在激光高速打印机中存在明显缺陷,因此不建议大业务量的程序使用 8 g.DrawImage(bmp, locationX, locationY, bmp.Width, bmp.Height); 笔者使用某款佳能的普通喷墨打印机速度不是很理想,在实际业务需求量很大的情况下,采用了利盟牌某款高速激光打印机

【C#】工具类-FTP操作封装类FTPHelper

时光怂恿深爱的人放手 提交于 2020-04-24 13:03:44
C# FTPHelper实现FTP服务器文件读写操作,支持SSL协议(FTP服务器为:Serv-U10.0)。 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.Text; namespace FTPTest { public class FTPHelper { #region 变量 /// <summary> /// FTP请求对象 /// </summary> FtpWebRequest request = null ; /// <summary> /// FTP响应对象 /// </summary> FtpWebResponse response = null ; /// <summary> /// FTP服务器长地址 /// </summary> public string FtpURI { get ; private set ; } /// <summary> /// FTP服务器IP /// </summary> public

Qt 判断文件或文件夹是否存在及创建文件夹

我的未来我决定 提交于 2020-04-18 14:55:17
1. 判断文件夹是不是存在 参数说明: QString fullPath;//文件夹全路径 / 方法1 / bool isDirExist(QString fullPath) { QDir dir(fullPath); if(dir.exists()) { return true; } return false; } / 方法2 / bool isDirExist(QString fullPath) { QFileInfo fileInfo(fullPath); if(fileInfo.isDir()) { return true; } return false; } 2. 判断文件是不是存在 参数说明: QString fullFileName;//文件全路径(包含文件名) / 方法1 / bool isFileExist(QString fullFileName) { QFileInfo fileInfo(fileFullName); if(fileInfo.isFile()) { return true; } return false; } 3、判断文件或文件夹是不是存在(即不确定字符串是文件还是文件夹路径) 参数说明: QString fullFilePath;//路径名 / 方法1 / bool isFileExist(QString fullFilePath) {

VS2012 C#使用/配置Log4Net

旧时模样 提交于 2020-04-18 14:34:45
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来。 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本节探讨如何在VS2012中使用Log4Net 1、首先在项目中添加Nuget程序包... 2、然后在NuGet窗体中搜索Log4Net,然后点击安装<安装过程可能会持续几分钟,请耐心等待> 3、在项目中添加一个Config文件,并命名为:Log4Net.config 截图中配置的XML代码如下: <log4net> <logger name= " logerror " > <level value= " ERROR " /> <appender- ref ref = " ErrorAppender " /> </logger> <logger name= " loginfo " > <level value= " INFO " /> <appender- ref ref = " InfoAppender " /> </logger> <appender name= " ErrorAppender " type= " log4net.Appender.RollingFileAppender " > <param name= " File " value= " Log\\LogError\\ " /> <param name= "

Windows程序通用自动更新模块(C#,.NET4.5以上)

蹲街弑〆低调 提交于 2020-04-15 13:32:12
【推荐阅读】微服务还能火多久?>>> 本通用自动更新模块适合所有Windows桌面程序的自动更新,不论语言,无论Winform还是wpf。 一、工作流程: 1. 主程序A调起升级程序B 2. B从服务器获取更新程序列表,打印更新信息。 3. B杀死A进程(此步骤可以放在步骤2~5任意位置) 4. B根据更新信息中指示的地址,下载更新程序包(.zip文件) 5. 解压缩.zip文件到一个新创建的文件夹 6. 将解压后的文件拷贝到原始文件目录,做替换。 7. 删除下载的.zip文件以及解压后创建的文件夹 8. B打开A 二、源码介绍: 升级程序B的实现: 更新信息列表用于存储版本信息,以及更新说明信息。通常为json或xml文件。本文为json文件。 存储列表信息的类 public class UpdateItem { public string Version { get ; set ; } // 版本号 public string UpdateContent { get ; set ; } // 更新信息 public string DownloadUri { get ; set ; } // 更新包的下载地址 public string Time { get ; set ; } // 更新时间 public string Size { get ; set ; } // 更新包大小

C# Encoding

前提是你 提交于 2020-04-15 08:04:41
【推荐阅读】微服务还能火多久?>>> 之前做公司项目的时候,对于C#编码这块总是一知半解,所以打算通过这篇笔记对C#编码(Encoding)进行彻底的扫盲,关于编码和字符集的基础知识,请参考 字符集和字符编码(Charset & Encoding) ,看完这篇文章之后,来看本文会更加的轻松。 1、Encoding (1)、如何生成一个Encoding即一种编码 Encoding位于System.Text命名空间下,是一个抽象类,它的派生类如下图: 要实例化一个Encoding一共有以下两种方式: a、通过实例化它的派生类,然后通过里式转换实例化一个Encoding,代码如下: Encoding e= new UTF8Encoding(); b、通过Encoding的静态属性ASCII,Unicode,UTF32,UTF7,UTF8,Default来生成,代码如下: Encoding e = Encoding.UTF8; 其实b中的静态属性无非是new了一个a中的派生类,有图为证 注:上面通过静态属性生成的Encoding实例,符合单例模式,但是并不适用在多线程环境下,所以当你的Encoding需要全局唯一时,请使用静态属性的方式,而不是通过new的方式。 (2)Encoding.Default 注意(1)中b,Encoding的静态属性中有一个Default,它没有对应的派生类