C#操作本地文件及保存文件到数据库的基本方法总结
程序员文章站
2023-11-22 14:51:52
命名空间:
using system.io;
写文本文件
streamwriter sw=file.createtext("c:\\tex...
命名空间:
using system.io;
写文本文件
streamwriter sw=file.createtext("c:\\text.txt"); sw.writeline("c#"); //写入一行文本 sw.write("www.csdn.net"); //在文本末尾写入文本 sw.flush(); //清空 sw.close(); //关闭
读文本文件
streamreader sr = file.opentext("c:\\text.txt"); sr.readline(); //读取一行数据 sr.read(); //读取一个字符 sr.readtoend(); //从当前位置读取到文本结束 sr.close(); //释放资源
追加文本文件
streamwriter sw = file.appendtext("c:\\text.txt"); sw.writeline("c#"); //写入一行文本 sw.write("www.csdn.net"); //在文本末尾写入文本 sw.flush(); //清空 sw.close(); //关闭
判断文件是否存在
file.exists("c:\\text.txt");
删除文件
file.delete("c:\\text.txt");
复制文件
file.copy("c:\\text.txt", "c:\\copy.txt"); //把c:\\text.txt复制到c:\\copy.txt
移动文件
file.copy("c:\\text.txt", "d:\\text.txt"); //把c:\\text.txt移动到d:\\text.txt
文件夹创建、移动、删除
directory.delete("c:\\test"); //删除c盘下的test文件夹 directory.createdirectory("c:\\test"); //在c盘创建test文件夹 directory.exists("c:\\test"); //验证c盘test文件夹是否存在 directory.move("c:\\test", "d:\\test"); //把c:\test移动到d:\test
oracle数据库中保存文件(c#)
oracle中有blob和clob可以保存大数据量。其中blob是指二进制大对象也就是英文binary large object的缩写,用来存储大量二进制数据。而clob是指大字符对象是英文character large object的缩写,用来存储大量文本数据。
1.数据库表
-- 创建文件表
create table tb_file ( id number(20) not null, file_name nvarchar2(100), file_content blob, constraint pk_tb_file primary key (id) ) tablespace mydb storage( initial 64k minextents 1 maxextents unlimited );
--设置tb_file主键自增
create sequence seq_tb_file --创建自增序列 minvalue 1 maxvalue 9999999999999999999 start with 1 increment by 1 nocache order; create or replace trigger ai_tb_file --创建触发器,当插入新记录时自增主键id before insert on tb_file for each row when (new.id is null) begin select seq_tb_file.nextval into :new.id from dual; end;
2 在数据库中保存和读取二进制文件
//添加命名空间 using system; using system.data.oracleclient; using system.io; using system.data; /// <summary> /// 把文件插入数据库中 /// </summary> /// <param name="filepath">文件名,包含路径,如c:\temp.rar</param> /// <returns></returns> public int insert(string filepath) { string connstr = "data source=orcl;user=mydbuser;password=mydbuser;"; oracleconnection conn = new oracleconnection(connstr); oraclecommand cmd = conn.createcommand(); //读取文件 filestream fs = file.openread(filepath); byte[] buffer = new byte[fs.length]; fs.read(buffer, 0, buffer.length); oracleparameter paramfilecontent = cmd.createparameter(); paramfilecontent.oracletype = oracletype.blob; paramfilecontent.parametername = "filecontent"; paramfilecontent.direction = parameterdirection.input; paramfilecontent.value = buffer; cmd.parameters.add(paramfilecontent); oracleparameter paramfilename = cmd.createparameter(); paramfilename.oracletype = oracletype.varchar; paramfilename.parametername = "filename"; paramfilename.direction = parameterdirection.input; paramfilename.value = path.getfilename(filepath); cmd.parameters.add(paramfilename); string sqlinsert = "insert into tb_file (file_name, file_content) values (:filename, :filecontent)"; cmd.commandtext = sqlinsert; cmd.commandtype = commandtype.text; conn.open(); int result = cmd.executenonquery(); conn.close(); return result; } /// <summary> /// 根据文件名从数据库中获取文件 /// </summary> /// <param name="filename">数据库中的文件名</param> /// <param name="savepath">文件的保存路径,包括文件名,如c:\file.rar</param> public void select(string filename, string savepath) { string connstr = "data source=orcl;user=mydbuser;password=mydbuser;"; oracleconnection conn = new oracleconnection(connstr); oraclecommand cmd = conn.createcommand(); string sqlselect = "select file_name, file_content from tb_file where file_name=:filename"; cmd.commandtext = sqlselect; cmd.commandtype = commandtype.text; oracleparameter paramfilename = cmd.createparameter(); paramfilename.oracletype = oracletype.varchar; paramfilename.parametername = "filename"; paramfilename.direction = parameterdirection.input; paramfilename.value = filename; cmd.parameters.add(paramfilename); conn.open(); oracledatareader dr = cmd.executereader(); dr.read(); byte[] buffer = (byte[])dr["file_content"]; dr.close(); conn.close(); //把文件保存到指定路径 file.writeallbytes(savepath, buffer); }
上一篇: oracle中decode函数的使用方法
下一篇: C#中系统时间和UNIX时间戳互相转换