C#获取文件名 扩展名

string fullPath = @"d:\test\default.avi";

string filename  = Path.GetFileName(fullPath);//返回带扩展名的文件名 "default.avi"
string extension = Path.GetExtension(fullPath);//扩展名 ".aspx"
string fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fullPath);// 没有扩展名的文件名 "default" string dirPath = Path.GetDirectoryName(filePath) //返回文件所在目录 "d:\test"
string fullPath1 = Path.Combine(@"d:\test", "default.avi") //返回 "d:\test\default.avi" string fullPath2 = Path.GetFullPath("config.ini");//返回指定路径字符串的绝对路径

测试图片

文件流
FileStream 可读可写 大文件 释放
StreamReader 读取 释放
StreamWriter 写入 释放
using 中释放
File 可读可写 小文件

Path类 针对字符串(路径)进行操作

Directory 操作文件夹

文件流读写

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO; namespace _09文件流
{
class Program
{
static void Main(string[] args)
{ //string msg = "飞流直下三千尺";
////字符串转字节数组
//byte[] buffer = System.Text.Encoding.UTF8.GetBytes(msg); ////字节数组转字符串 //string str= System.Text.Encoding.UTF8.GetString(buffer); //把字符串写入到文件中,以流的方式写内容 //using ( FileStream fs = new FileStream("1.txt", FileMode.Create, FileAccess.Write))
//{
// string msg = "文能提笔控萝莉";
// byte[] buffer = System.Text.Encoding.UTF8.GetBytes(msg);
// fs.Write(buffer, 0, buffer.Length); //}//Console.ReadKey(); //fs.Close();//关闭流
//fs.Flush();//清除缓冲区
//fs.Dispose();//释放占用的资源 (这三个必须一起写,用using方式就不用这三个释放资源了) //以流的方式读数据 using (FileStream fs = new FileStream("1.txt", FileMode.Open, FileAccess.Read))
{
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, , buffer.Length);
string msg = System.Text.Encoding.UTF8.GetString(buffer);
Console.WriteLine(msg);
}
Console.ReadKey(); }
}
}

大文件移动

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace _10大文件移动
{
class Program
{
static void Main(string[] args)
{
//读的流
using (FileStream fsRead=new FileStream(@"G:\视频\海盗.mkv",FileMode.Open, FileAccess.Read))
{
//写的流
using (FileStream fsWrite=new FileStream(@"G:\电影\海盗.mkv", FileMode.Create, FileAccess.Write))
{
//每次读取的大小是5M
byte[]buffer=new byte[**];
//实际(真正读取到的大小)
int r= fsRead.Read(buffer, , buffer.Length);
while (r>)
{
//写入
fsWrite.Write(buffer, , r);
Console.WriteLine("**");
//再读取
r = fsRead.Read(buffer, , buffer.Length);
}
}
}
Console.WriteLine("ok了");
Console.ReadKey();
}
}
}

另一种方式的读写

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace _11另一种方式的读和写
{
class Program
{
static void Main(string[] args)
{ #region 读取数据
//using (StreamReader reader = new StreamReader("1.txt",Encoding.Default))
//{
//只读取了一行 //string msg= reader.ReadLine();
//string msg;
//要循环读取
//while ((msg=reader.ReadLine())!=null)
//{
// Console.WriteLine(msg);
//}
//一直读取到流的末尾
// string msg= reader.ReadToEnd();
// Console.WriteLine(msg);
//while (!reader.EndOfStream)
//{
// Console.WriteLine(reader.ReadLine());
//} // }
#endregion
#region 写入数据 //using (StreamWriter write=new StreamWriter("one.txt"))
//{
// write.Write("原来这也可以啊");
//} #endregion
// Console.ReadKey(); }
}
}

File(文件) 、Path(路径)类

File:

            //复制
File.Copy(path1, path2); //path1现在有文件路径(带上文件E:\test\test.txt),path2目标文件路径
//创建文件
//File.Create("1.txt");
// File.Delete();//删除
//File.Exists();//判断该路径下的文件是否存在
//File.Move();//移动
//File.WriteAllLines();//
//File.WriteAllText();
// File.ReadAllLines();//
//File.ReadAllText();

Path:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace FilePath
{
class Program
{
static void Main(string[] args)
{
string lujing = @"D:\Program Files (x86)\EditPlus 中文版\1.txt";
//主要是更改后缀名
string msg = Path.ChangeExtension(lujing, ".rar");
Console.WriteLine(msg);
string str1 = @"C:\Program Files (x86)\Microsoft\";
string str2 = @"Exchange\Web Services\2.0\GettingStarted.doc";
//合并路径的方法
string msg = Path.Combine(str1, str2);
Console.WriteLine(msg);
string str = @"C:\Program Files (x86)\Microsoft\Exchange\Web Services\2.0\GettingStarted.doc";
//查找某个文件所在的路径.
string msg = Path.GetDirectoryName(str);
Console.WriteLine(msg);
Path.GetExtension();//返回扩展名
//返回的是文件名和扩展名
string msg = Path.GetFileName(str);
Path.GetFileNameWithoutExtension();//只返回文件名
//绝对路径
string msg = Path.GetFullPath("1.txt");
Console.WriteLine(msg); Console.ReadKey();
}
}
}

Directoty 文件夹类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace _01文件夹类
{
class Program
{
static void Main(string[] args)
{
//创建一个文件夹(目录),在指定的路径
Directory.CreateDirectory("新文件夹");
//如果想要删除该目录中所有的内容则采用这个方法的第二个重载,true即可
Directory.Delete("新文件夹");
Directory.Delete("新文件夹",true);
//判断该路径下是否有这个文件夹
Directory.Exists("新文件夹");
//获取该目录中所有文件的路径(包含文件名)
string[]path= Directory.GetFiles("新文件夹");
//获取该目录中所有的文本文件
string[]path= Directory.GetFiles("新文件夹","*.txt"); Console.ReadKey(); }
}
}

资料管理器(递归)

CS后台代码(源码附件在图片里)

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace _03资料管理器
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
//窗体加载事件
string path = "demo";
LoadDirectory(path,tv.Nodes);
}
private void LoadDirectory(string path, TreeNodeCollection tnc)
{
//加载所有的目录
string[] dires = Directory.GetDirectories(path);
for (int i = ; i < dires.Length; i++)
{
string name= Path.GetFileNameWithoutExtension(dires[i]);
TreeNode tn= tnc.Add(name);
//递归
LoadDirectory(dires[i],tn.Nodes);
}
//加载每个目录中的文件
string[]files= Directory.GetFiles(path);
for (int i = ; i < files.Length; i++)
{
string fileName= Path.GetFileNameWithoutExtension(files[i]);
TreeNode tn1= tnc.Add(fileName);
tn1.Tag = files[i];
//要想读取文件就要找到这个文件的路径
}
}
private void tv_DoubleClick(object sender, EventArgs e)
{
if (tv.SelectedNode.Tag!=null)
{
txt.Text= File.ReadAllText(tv.SelectedNode.Tag.ToString(),Encoding.Default);
}
} }
}

用户导出工具:

Export.ashx.cs

using DFS.Consumer.Cms.Sitecore_Modules.Shell.ExpUsers;
using DFS.Consumer.DataLayer;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Configuration;
using System.Web.Script.Serialization; namespace DFS.Consumer.Cms.Sitecore_Modules.Shell.UserExp
{
/// <summary>
/// Export 的摘要说明
/// </summary>
public class Export : IHttpHandler
{
string temp = string.Empty;
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
Stopwatch watch = new Stopwatch();
watch.Start();
//CacheHelper.SetCache("tempvalue", System.DateTime.Now.ToShortTimeString());
var tab = context.Request["tab"].ToString();
switch (tab)
{
case "expcsv":
CacheHelper.SetCache("progressCount", "{'status':801,'msg':" + + "}");
int num = string.IsNullOrEmpty(context.Request.Form["num"].ToString()) ? : Convert.ToInt32(context.Request.Form["num"].ToString());
if (ButtonDownloadCsv_OnClick(num))
{ context.Response.Write("{'status':200,'msg':'complete'}");
CacheHelper.SetCache("progressCount", "{'status':700,'msg':" + + "}");
}
else
{
context.Response.Write("{'status':500,'msg':'Export fails, please contact your administrator'}");
}
MyLog("总用时:" + watch.Elapsed + "\r\n ----------------------------------------\n");
break;
case "getnum":
context.Response.Write(CacheHelper.GetCache("progressCount"));
//context.Response.Write("{'status':200,'msg':'" + CacheHelper.GetCache("progressCount") + "'}");
break;
case "expdb":
CacheHelper.SetCache("progressCount", "{'status':801,'msg':" + + "}");
int numdb = string.IsNullOrEmpty(context.Request.Form["num"].ToString()) ? : Convert.ToInt32(context.Request.Form["num"].ToString());
if (ButtonDownloadDB_OnClick(numdb))
{
context.Response.Write("{'status':200,'msg':'complete'}");
CacheHelper.SetCache("progressCount", "{'status':700,'msg':" + + "}");
}
else
{
context.Response.Write("{'status':500,'msg':'Export fails, please contact your administrator'}");
}
MyLog("总用时:" + watch.Elapsed + "\r\n ----------------------------------------\n");
break;
case "del":
if (ClearDB_OnClick())
{
context.Response.Write("{'status':200,'msg':'Completed!'}");
}
else
{
context.Response.Write("{'status':500,'msg':'failure!'}");
}
break;
case "download": if (File.Exists(WebConfigurationManager.AppSettings["ExpUserData"] + "DFS_User_Accounts.csv"))
{
context.Response.ContentType = "application/octet-stream";
context.Response.AddHeader("content-disposition", "attachment;filename=DFS_User_Accounts.csv");
context.Response.WriteFile(WebConfigurationManager.AppSettings["ExpUserData"] + "DFS_User_Accounts.csv");
}
else
{
context.Response.Write("{'status':500,'msg':'no file!'}");
}
break;
case "downloadstatus": if (File.Exists(WebConfigurationManager.AppSettings["ExpUserData"] + "DFS_User_Accounts.csv"))
{
context.Response.Write("{'status':200,'msg':'exist'}");
}
else
{
context.Response.Write("{'status':500,'msg':'no file!'}");
} break;
case "getstatus":
if (CacheHelper.GetCache("progressCount")!=null)
{
int currentStatus = Convert.ToInt32(JObject.Parse(CacheHelper.GetCache("progressCount").ToString())["status"]);
if (currentStatus == || currentStatus == )
{
context.Response.Write("{'status':900,'msg':'Someone is exporting data to CSV, please wait until exportation is completed. Or you can click ‘Download CSV’ button to get last version of extraction data.'}");
break;
}
}
break;
}
} /// <summary>
/// 插入到数据库
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected bool ButtonDownloadDB_OnClick(int num)
{
Stopwatch sw_sql = new Stopwatch();
sw_sql.Start(); //MemberShip SqlHelper.CreateInstance("corelive").run //(new SqlCommand("SELECT * FROM dbo.aspnet_Membership"));//
Stopwatch watch_ship = new Stopwatch();
watch_ship.Start();
var list_mUser = GetListMemberShip();//GetActiveEmail();//
MyLog("GetListMemberShip:" + watch_ship.Elapsed + "\n");
Stopwatch watch_active = new Stopwatch();
watch_active.Start();
var list_Active = SqlHelper.CreateInstance("dfs").RunDynamicList("SELECT [Email] FROM [dbo].[CRMActivate]");
MyLog("是否激活用时:" + watch_active.Elapsed + "\n");
var builder = new StringBuilder();
//var streamWriter = new StreamWriter();
builder.AppendLine(@"""Account Name"",""Password"",""salt"",""Title"",""First Name"",""Surname"",""Country"",""Email"",""Gender"",""Address"",""Primary Area Code"",""Primary Contact Number"",""Secondary Area Code"",""Secondary Contact Number"",""Age Range"",""Preferred Language"",""Social Type"",""Social ID"",""Receive Newsletter"",""Receive Member Updates"",""Preferred DFS Location"",""Register Location"",""Register Language"",""ID"",""Social Email"",""Loyal T Number"",""Active Or Not"",""Register Date"",""Last Login Date"",""First Name On Passport"",""Last Name On Passport"",""Passport Number"",""Date Of Birth"",""Prefered Method Of Contact""");
var listtemp = GetUserList(num, );
int progressCount = ;
Stopwatch watch_sql = new Stopwatch();
watch_sql.Start();
var sb = new StringBuilder();
foreach (var user in listtemp)
{ if (progressCount % == )
{
CacheHelper.SetCache("progressCount", "{'status':200,'msg':" + progressCount + "}");//progressCount);
//progress.Text += System.DateTime.Now.ToShortTimeString() + ":" + "已导出数据:" + progressCount + "条\n";
} var usertemp = list_mUser.Where(o => o.UserId == user.ID).FirstOrDefault();
var password = string.Empty;
var passwordSalt = string.Empty;
if (list_mUser.Where(o => o.UserId == user.ID).FirstOrDefault() != null)
{
password = usertemp.Password;
passwordSalt = usertemp.PasswordSalt; }
else
{
continue;
}
sb.Append(string.Format(@"
INSERT INTO [UserExp].[dbo].[UserInfo]
([AccountName]
,[Password]
,[Salt]
,[Title]
,[FirstName]
,[Surname]
,[Country]
,[Email]
,[Gender]
,[Address]
,[PrimaryAreaCode]
,[PrimaryContactNumber]
,[SecondaryAreaCode]
,[SecondaryContactNumber]
,[AgeRange]
,[PreferredLanguage]
,[SocialType]
,[SocialID]
,[ReceiveNewsletter]
,[ReceiveMemberUpdates]
,[PreferredDFSLocation]
,[RegisterLocation]
,[RegisterLanguage]
,[ID]
,[SocialEmail]
,[LoyalTNumber]
,[ActiveOrNot]
,[RegisterDate]
,[LastLoginDate]
,[FirstNameOnPassport]
,[LastNameOnPassport]
,[PassportNumber]
,[DateOfBirth]
,[PreferedMethodOfContact])
VALUES('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}','{12}','{13}','{14}','{15}','{16}','{17}','{18}','{19}','{20}','{21}','{22}','{23}','{24}','{25}','{26}','{27}','{28}','{29}','{30}','{31}','{32}','{33}');",
HttpUtility.UrlEncode(user.AccountName),//解码:System.Web.HttpUtility.UrlDecode(s);
password,
passwordSalt,
HttpUtility.UrlEncode(user.UserTitle),
HttpUtility.UrlEncode(user.FirstName),
HttpUtility.UrlEncode(user.Surname),
HttpUtility.UrlEncode(user.Country),
HttpUtility.UrlEncode(user.Email),
HttpUtility.UrlEncode(user.Gender),
HttpUtility.UrlEncode(user.Address),
user.PrimaryAreaCode,//"Primary Area Code"),
user.PrimaryContactNumber,
user.SecondaryAreaCode,//"Secondary Area Code"),
user.SecondaryContactNumber,
HttpUtility.UrlEncode(user.AgeRange),
HttpUtility.UrlEncode(user.PreferredLanguage),
HttpUtility.UrlEncode(user.SocialType),
user.SocialID,
user.ReceiveNewsletter == "Yes" ? : ,//"Receive Newsletter"),
user.ReceiveMemberUpdates == "Yes" ? : ,//"Receive Member Updates"),
HttpUtility.UrlEncode(user.PreferredDFSLocation),//"Preferred DFS Location"),
HttpUtility.UrlEncode(user.RegLocation),
HttpUtility.UrlEncode(user.RegLanguage),
user.ID,
HttpUtility.UrlEncode(user.SocialEmail),
HttpUtility.UrlEncode(user.LoyalTNumber),
list_Active.Where(o => o.Email == user.Email).Count() > ? : ,
user.RegisterDate.ToString(),
user.LastLoginDate.ToString(),
HttpUtility.UrlEncode(user.FirstNameonPassport),//"First Name On Passport"),
HttpUtility.UrlEncode(user.LastNameonPassport),//"Last Name On Passport"),
user.PassportNumber,//"assport Number"),
user.DateOfBirth,
HttpUtility.UrlEncode(user.PreferredMethodofContact)));
progressCount++;
} MyLog("拼接SQL用时:" + watch_sql.Elapsed + "\r\n共:" + progressCount + "条");
Stopwatch watch_io = new Stopwatch();
watch_io.Start();
var cmd = new SqlCommand(sb.ToString());
SqlHelper.CreateInstance("userexp").RunNoneQuery(cmd);
MyLog("执行SQL:" + watch_io.Elapsed + "\n");
return true;
}
/// <summary>
/// 清空数据库
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected bool ClearDB_OnClick()
{ var helper = SqlHelper.CreateInstance("userexp");
const string insertQuery = @"delete UserInfo where 1=1;";
var cmd = new SqlCommand(insertQuery);
helper.RunNoneQuery(cmd);
return true; } /// <summary>
/// 插入到CSV 3.5万条1分钟左右
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected bool ButtonDownloadCsv_OnClick(int num)
{
//MemberShip SqlHelper.CreateInstance("corelive").run //(new SqlCommand("SELECT * FROM dbo.aspnet_Membership"));//
Stopwatch watch_ship = new Stopwatch();
watch_ship.Start();
var list_mUser = GetListMemberShip();//GetActiveEmail();//
MyLog("GetListMemberShip:" + watch_ship.Elapsed + "\n");
Stopwatch watch_active = new Stopwatch();
watch_active.Start();
var list_Active = SqlHelper.CreateInstance("dfs").RunDynamicList("SELECT [Email],[LoyalTNo] FROM [dbo].[CRMActivate]");
MyLog("是否激活用时:" + watch_active.Elapsed + "\n");
var builder = new StringBuilder();
//var streamWriter = new StreamWriter();
builder.AppendLine(@"""Account Name"",""Password"",""salt"",""Title"",""First Name"",""Surname"",""Country"",""Email"",""Gender"",""Address"",""Primary Area Code"",""Primary Contact Number"",""Secondary Area Code"",""Secondary Contact Number"",""Age Range"",""Preferred Language"",""Social Type"",""Social ID"",""Receive Newsletter"",""Receive Member Updates"",""Preferred DFS Location"",""Register Location"",""Register Language"",""ID"",""Social Email"",""Loyal T Number"",""Active Or Not"",""Register Date"",""Last Login Date"",""First Name On Passport"",""Last Name On Passport"",""Passport Number"",""Date Of Birth"",""Prefered Method Of Contact""");
var listtemp = GetUserList(num, );
int progressCount = ;
Stopwatch watch_sql = new Stopwatch();
watch_sql.Start();
foreach (var user in listtemp)
{
if (progressCount % == )
{
CacheHelper.SetCache("progressCount", "{'status':200,'msg':" + progressCount + "}");//progressCount);
//progress.Text += System.DateTime.Now.ToShortTimeString() + ":" + "已导出数据:" + progressCount + "条\n";
} if (string.IsNullOrEmpty(user.ID) || user.AccountName.StartsWith("sitecore"))
{
continue;
}
var usertemp = list_mUser.Where(o => o.UserId == user.ID).FirstOrDefault();
var password = string.Empty;
var passwordSalt = string.Empty;
if (list_mUser.Where(o => o.UserId == user.ID).FirstOrDefault() != null)
{
password = usertemp.Password;
passwordSalt = usertemp.PasswordSalt; }
//if (list_Active.Where(o=>o.Email==user.Email).FirstOrDefault()==null)
//{
// continue;
//}
//MyLog(list_mUser.Where(o => o.UserId == user.ID).FirstOrDefault().Password); //password = String.Format(list_mUser.Where(o => o.UserId == new Guid(user.ID)).FirstOrDefault().Password);
// password=string.IsNullOrEmpty( list_mUser.Where(o => o.UserId == new Guid(user.ID)).FirstOrDefault().Password)?"",list_mUser.Where(o => o.UserId == new Guid(user.ID)).FirstOrDefault().Password;
if (!DFS.Consumer.Security.UserManager.IsEmail(user.Email))
continue;
var fullName = ContainsChinese(user.Surname + user.FirstName)
? user.Surname + user.FirstName
: user.FirstName + " " + user.Surname;
builder.AppendLine(string.Format(@"""{0}"",""{1}"",""{2}"",""{3}"",""{4}"",""{5}"",""{6}"",""{7}"",""{8}"",""{9}"",""{10}"",""{11}"",""{12}"",""{13}"",""{14}"",""{15}"",""{16}"",""{17}"",""{18}"",""{19}"",""{20}"",""{21}"",""{22}"",""{23}"",""{24}"",""{25}"",""{26}"",""{27}"",""{28}"",""{29}"",""{30}"",""{31}"",""{32}"",""{33}""",
user.AccountName,
password,//DFSConsumer_CoreLive].[dbo].[aspnet_Membership] 根据ID可以获取
passwordSalt,
user.UserTitle.Replace("\"", ""),
user.FirstName.Replace("\"", ""),
user.Surname.Replace("\"", ""),
user.Country.Replace("\"", ""),
user.Email.Replace("\"", ""),
user.Gender.Replace("\"", ""),
user.Address.Replace("\"", ""),
user.PrimaryAreaCode.Replace("\"", ""),//"Primary Area Code",
user.PrimaryContactNumber.Replace("\"", ""),
user.SecondaryAreaCode.Replace("\"", ""), //"Secondary Area Code",
user.SecondaryContactNumber.Replace("\"", ""),
user.AgeRange.Replace("\"", ""),
user.PreferredLanguage.Replace("\"", ""),
user.SocialType.Replace("\"", ""),
user.SocialID.Replace("\"", ""),
user.ReceiveNewsletter.Replace("\"", ""),//"Receive Newsletter",
user.RecMemberUpdate.Replace("\"", ""),//"Receive Member Updates",
user.PreferredDFSLocation.Replace("\"", ""), //"Preferred DFS Location",
user.RegLocation.Replace("\"", ""),
user.RegLanguage.Replace("\"", ""),
user.ID.Replace("\"", ""),
user.SocialEmail.Replace("\"", ""),
list_Active.Where(o => o.Email == user.Email).FirstOrDefault()!=null?list_Active.Where(o => o.Email == user.Email).FirstOrDefault().LoyalTNo:"",//user.LoyalTNumber.Replace("\"", ""),
list_Active.Where(o => o.Email == user.Email).Count() > ? "Yes" : "No",//user.Email).FirstOrDefault().Email,//Count()>0 ? "Yes" : "No",//"Active Or Not",// [DFSConsumer_DFS].[dbo].[CRMActivate]
user.RegisterDate,
user.LastLoginDate,
user.FirstNameonPassport.Replace("\"", ""),//"First Name On Passport",
user.LastNameonPassport.Replace("\"", ""),//"Last Name On Passport",
user.PassportNumber.Replace("\"", ""),//"assport Number",
user.DateOfBirth.Replace("\"", ""),//"Date Of Birth",
user.PreferredMethodofContact.Replace("\"", "")));//"Prefered Method Of Contact"));
progressCount++;
} MyLog("创建表格用时:" + watch_sql.Elapsed + "\r\n共:" + progressCount + "条");
Stopwatch watch_io = new Stopwatch();
watch_io.Start();
using (StreamWriter streamWriter = new StreamWriter(WebConfigurationManager.AppSettings["ExpUserData"] + "DFS_User_Accounts.csv", false, Encoding.GetEncoding("UTF-8"))) //GB2312
{
streamWriter.Write(builder.ToString());
}
MyLog("写入流用时:" + watch_io.Elapsed + "\n");
return true;
} #region tool private static bool ContainsChinese(string src)
{
var reg = new System.Text.RegularExpressions.Regex(@"[\u4e00-\u9fbf]{1,}");
return reg.IsMatch(src);
} private List<MemberShip> GetListMemberShip()
{
List<MemberShip> list_mUser = new List<MemberShip>();
var tb_mUser = DFS.Consumer.DataLayer.SqlHelper.CreateInstance("corelive").RunSelectQuery(new SqlCommand("SELECT * FROM dbo.aspnet_Membership"));
//var list_Active = SqlHelper.CreateInstance("dfs").RunDynamicList("SELECT [Email] FROM [dbo].[CRMActivate]");
//foreach (var item in lis_Active)
//{
// MyLog(item.Email);
//}
foreach (DataRow dr in tb_mUser.Rows)
{
list_mUser.Add(new MemberShip
{
Password = dr["Password"].ToString(),
UserId = string.IsNullOrEmpty(dr["UserId"].ToString()) ? "" : dr["UserId"].ToString(),
PasswordSalt = dr["PasswordSalt"].ToString()
//ActiveOrNot=list_Active.Contains("")?"":""
}); //MyLog(dr["Password"].ToString() + " | " + dr["UserId"].ToString() + " | " + dr["PasswordSalt"].ToString());
} return list_mUser;
}
/// <summary>
/// 获取用户列表 分页
/// </summary>
/// <param name="pageSize"></param>
/// <param name="pageIndex"></param>
/// <returns></returns>
private List<UserInfo> GetUserList(int pageSize, int pageIndex)
{
var userInfoList = new List<UserInfo>();
Stopwatch watch1 = new Stopwatch();
watch1.Start(); var users = Sitecore.Security.Accounts.RolesInRolesManager.GetUsersInRole(Sitecore.Security.Accounts.Role.FromName("dfs\\Business User"), false); users = pageSize > ? users.Take(pageSize) : users; MyLog("Sitecore查询用时:" + watch1.Elapsed + "\n");
Stopwatch watch2 = new Stopwatch();
watch2.Start();
var businessUserRole = DFS.Consumer.Security.UserRoles.BusinessUserRole;
userInfoList = businessUserRole == null || users == null
? new List<UserInfo>()
: (from user in users
let membershipUser = System.Web.Security.Membership.GetUser(user.Profile.UserName)
where membershipUser != null && !membershipUser.IsLockedOut
where !string.IsNullOrEmpty(user.Profile.UserName)
&& !string.IsNullOrEmpty(user.Profile.Email)
&& user.Profile.Comment != "Disabled"
select UserInfo.Get(user)).ToList();
MyLog("linq查询用时:" + watch2.Elapsed + "\n");
return userInfoList; }
/// <summary>
/// 写日志
/// </summary>
/// <param name="msg"></param>
private void MyLog(string msg)
{
//using (FileStream fs = new FileStream("c:/test/log.txt", FileMode.Create, FileAccess.Write))
//{
// //string msg = "总用时:" + watch.Elapsed + "\n";
// byte[] buffer = System.Text.Encoding.UTF8.GetBytes(msg);
// fs.Write(buffer, 0, buffer.Length); //}
try
{
using (FileStream fs = new FileStream(WebConfigurationManager.AppSettings["ExpUserData"] + "log.txt", FileMode.Append, FileAccess.Write))
{
msg = "\r\n" + System.DateTime.Now.ToString() + ":\r\n" + msg;
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(msg);
fs.Write(buffer, , buffer.Length);
}
}
catch (Exception e)
{ MyLog(e.Message.ToString());
}
}
#endregion public bool IsReusable
{
get
{
return false;
}
}
}
}
                using (FileStream fs = new FileStream(ConfigurationManager.AppSettings["LogDirectory"] + DateTime.Now.ToString("yyyy-MM-dd") + "log.txt", FileMode.Append, FileAccess.Write))
{
//msg = "\r\n" + System.DateTime.Now.ToString() + ":\r\n" + msg;
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(message);
fs.Write(buffer, , buffer.Length);
}
 <add key="LogDirectory" value="E:\inetpub\wwwroot\authoring1.dfs.com\Data\ServiceLog\Flight\"/>

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="DFS.Consumer.Cms.Sitecore_Modules.Shell.ExpUsers.Default" %>

<!DOCTYPE html>

<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="Resources/DFS-favicon.ico"> <title>User Extraction</title> <!-- Bootstrap core CSS -->
<link href="./Resources/bootstrap.min.css" rel="stylesheet"> <!-- Custom styles for this template -->
<link href="./Resources/dashboard.css" rel="stylesheet"> <!-- Just for debugging purposes. Don't actually copy these 2 lines! -->
<!--[if lt IE ]><script src="../../assets/js/ie8-responsive-file-warning.js"></script><![endif]-->
<script src="./Resources/ie-emulation-modes-warning.js"></script> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!--[if lt IE ]>
<script src="http://cdn.bootcss.com/html5shiv/3.7.0/html5shiv.js"></script>
<script src="http://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head> <body> <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">User Extraction</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="JavaScript:;">User Extraction</a>
</div>
<%-- <div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav navbar-right">
<li><a href="JavaScript:;">Dashboard</a></li>
<li><a href="JavaScript:;">Settings</a></li>
<li><a href="JavaScript:;">Profile</a></li>
<li><a href="JavaScript:;">Help</a></li>
</ul>
<form class="navbar-form navbar-right">
<input type="text" class="form-control" placeholder="Search...">
</form>
</div>--%>
</div>
</nav> <div class="container-fluid">
<div class="row">
<div class="col-sm-3 col-md-2 sidebar">
<ul class="nav nav-sidebar">
<li class="active"><a href="JavaScript:;">Export Users</a></li>
<!--<li><a href="http://v3.bootcss.com/examples/dashboard/#">Reports</a></li>
<li><a href="http://v3.bootcss.com/examples/dashboard/#">Analytics</a></li>
<li><a href="http://v3.bootcss.com/examples/dashboard/#">Export</a></li>-->
</ul>
</div>
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main"> <%-- <form id="form2" runat="server">--%>
<button class="btn btn-primary" id="expcsv">Export To CSV</button>
<button class="btn btn-primary" id="downloadcsv">Download CSV</button>
<%-- <button class="btn btn-primary" id="expdb">Export To DataBase</button>
<button class="btn btn-danger" id="cleardb">Clear DataBase</button>--%>
<%--<asp:Button ID="ButtonDownloadCsv" runat="server" Text="Export To CSV" OnClick="ButtonDownloadCsv_OnClick" CssClass="btn btn-primary" />
<asp:Button ID="ButtonDownloadDB" runat="server" Text="Export To DataBase" OnClick="ButtonDownloadDB_OnClick" CssClass="btn btn-primary" />
<asp:Button ID="ClearDB" runat="server" Text="Clear DataBase" OnClick="ClearDB_OnClick" CssClass="btn btn-danger" /><br />--%>
<br />
<%-- Export Quantity( or not input is all):--%> <input id="num" placeholder="Number" class="form-control" style="display: none" value="" />
<%--<asp:TextBox ID="TextBox1" runat="server" CssClass="form-control"></asp:TextBox>--%>
<br />
<%--<p style="color: red">View the data path C:\inetpub\wwwroot\DFS\Data\UserExp\</p>--%>
<div>
<h3>Export the progress:</h3>
<%-- <asp:Label ID="progress" runat="server" Text=""></asp:Label>
<p id=""></p>--%>
<div id="proinfo"></div>
</div>
<div style="display: none" class="table-responsive">
<table class="table table-striped">
<thead>
<tr> <th>Account Name</th>
<th>UserTitle</th>
<th>FirstName</th>
<th>Surname</th>
<th>Country</th>
</tr>
</thead>
<tbody>
<%-- <%foreach (var item in UserInfoList10)
{
%>
<tr>
<td><%=item.AccountName %></td>
<td><%=item.UserTitle %></td>
<td><%=item.FirstName %></td>
<td><%=item.Surname %></td>
<td><%=item.Country %></td>
</tr> <%} %>--%>
</tbody>
</table>
<%-- 总条数:<%=UserCount %>--%>
</div>
<%--</form>--%>
</div>
</div>
</div> <!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="./Resources/jquery.min.js"></script>
<script src="./Resources/bootstrap.min.js"></script>
<script src="./Resources/docs.min.js"></script>
<!-- IE10 viewport hack for Surface/desktop Windows bug -->
<script src="./Resources/ie10-viewport-bug-workaround.js"></script> <div id="global-zeroclipboard-html-bridge" class="global-zeroclipboard-container" title="" style="position: absolute; left: 0px; top: -9999px; width: 15px; height: 15px; z-index: 999999999;" data-original-title="Copy to clipboard">
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" id="global-zeroclipboard-flash-bridge" width="100%" height="100%">
<param name="movie" value="/assets/flash/ZeroClipboard.swf?noCache=1479180476023">
<param name="allowScriptAccess" value="sameDomain">
<param name="scale" value="exactfit">
<param name="loop" value="false">
<param name="menu" value="false">
<param name="quality" value="best">
<param name="bgcolor" value="#ffffff">
<param name="wmode" value="transparent">
<param name="flashvars" value="trustedOrigins=v3.bootcss.com%2C%2F%2Fv3.bootcss.com%2Chttp%3A%2F%2Fv3.bootcss.com">
<embed src="/assets/flash/ZeroClipboard.swf?noCache=1479180476023" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="100%" height="100%" name="global-zeroclipboard-flash-bridge" allowscriptaccess="sameDomain" allowfullscreen="false" type="application/x-shockwave-flash" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="trustedOrigins=v3.bootcss.com%2C%2F%2Fv3.bootcss.com%2Chttp%3A%2F%2Fv3.bootcss.com" scale="exactfit">
</object>
</div>
<svg xmlns="http://www.w3.org/2000/svg" width="" height="" viewBox="0 0 200 200" preserveAspectRatio="none" style="visibility: hidden; position: absolute; top: -100%; left: -100%;">
<defs></defs><text x="" y="" style="font-weight: bold; font-size: 10pt; font-family: Arial, Helvetica, Open Sans, sans-serif; dominant-baseline: middle">200x200</text>
</svg>
<script type="text/javascript">
//下载csv download
$('#downloadcsv').click(function () {
//location.href = 'Export.ashx?tab=download'
$.post("Export.ashx", { tab: "downloadstatus" }, function (result) {
if (result != null && result != "" && result != undefined) {
var rejson = eval('(' + result + ')');
if (rejson.status == ) {
location.href = 'Export.ashx?tab=download';
//window.clearInterval(intv);
} else {
alert(rejson.msg);
}
} else { location.href = 'Export.ashx?tab=download';
} });
// $("#proinfo").html(getNowFormatDate() + infoHtml);
});
var temp = ;
//导出CSV
$('#expcsv').click(function () { $.post("Export.ashx", { tab: "getstatus" }, function (result) {
if (result != null && result != "" && result != undefined) {
var rejson = eval('(' + result + ')');
if (rejson.status == ) {
//window.clearInterval(intv);
alert(rejson.msg);
} else {
startExp();
}
} else {
startExp();
} }); //$("#proinfo").html("<p>" + getNowFormatDate() + ":Started"); }); function startExp() {
alert("start");//Started'
$("#expcsv").attr("disabled", true);
$("#downloadcsv").attr("disabled", true);
setintv();
$.post("Export.ashx", { tab: "expcsv", num: $("#num").val() }, function (result) {
var rejson = eval('(' + result + ')');
$("#expcsv").attr("disabled", false);
$("#downloadcsv").attr("disabled", false);
if (rejson.status != ) {
window.clearInterval(intv);
alert(rejson.msg);
return;
}
}); $("#proinfo").html("<p>" + getNowFormatDate() + ":Started");
}
////导出db
//$('#expdb').click(function () {
// //alert("start");
// //$.post("Export.ashx", { tab: "expdb" }, function (result) {
// alert("start");//Started'
// //$("#proinfo").html("<p>" + getNowFormatDate() + ":Started");
// $.post("Export.ashx", { tab: "expdb", num: $("#num").val() }, function (result) {
// var rejson = eval('(' + result + ')');
// if (rejson.status == 200) {
// //alert(rejson.msg);
// }
// });
// setintv();
// $("#proinfo").html("<p>" + getNowFormatDate() + ":Started");
//});
////清空数据库
//$('#cleardb').click(function () {
// if (confirm("Sure to delete?")) {
// $.post("Export.ashx", { tab: "del" }, function (result) {
// var rejson = eval('(' + result + ')');
// if (rejson.status == 200) {
// alert(rejson.msg);
// }
// });
// }
//}); var infoHtml = "<p>" + getNowFormatDate() + ":Started";
var tempCount = ;//已导出数量
var counter = ;//循环秒数
//var completed = 0;//表及输入完成次数
function setintv() {
var intv = setInterval(function (event) {
$.post("Export.ashx", { tab: "getnum", num: $("#num").val() }, function (result) {
if (result != null && result != "" && result != undefined) { var rejson = eval('(' + result + ')'); //eval(result); switch (rejson.status) {
case :
if (tempCount != rejson.msg && rejson.msg > ) {
infoHtml = "<p>" + getNowFormatDate() + ":Exported " + rejson.msg + " data</p>" + $("#proinfo").html();
tempCount = rejson.msg;
}
break;
case :
if (counter >= ) {
infoHtml = "<p>" + getNowFormatDate() + ":Data being queried, please wait a moment.</p>" + $("#proinfo").html();
counter = ;
} else {
counter++;
}
break
case :
//alert("进入700");
//if (completed == 0) {
infoHtml = "<p>" + getNowFormatDate() + ":Completed!</p>" + $("#proinfo").html();
//completed++;
window.clearInterval(intv);
// } break;
} $("#proinfo").html(infoHtml);
}
});
}, );
} function getNowFormatDate() {
var date = new Date();
var seperator1 = "-";
var seperator2 = ":";
var month = date.getMonth() + ;
var strDate = date.getDate();
if (month >= && month <= ) {
month = "" + month;
}
if (strDate >= && strDate <= ) {
strDate = "" + strDate;
}
var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate
+ " " + date.getHours() + seperator2 + date.getMinutes()
+ seperator2 + date.getSeconds();
return currentdate;
}
</script>
</body>
</html>

调试写日志

            //bool append = true;
System.IO.TextWriter textWriter = new System.IO.StreamWriter("c://test002.log",true);
textWriter.Write("\n这是测试写文件002");
textWriter.Close();

读取文件

        public void MyLog(string msg)
{
System.IO.TextWriter textWriter = new System.IO.StreamWriter("mylog.log", true);//这个不是网站根目录,可能是运行时根目录
msg = "\r\n" + System.DateTime.Now.ToString() + ":\r\n" + msg;
textWriter.Write(msg + "\nm");
textWriter.Close();
}
            System.IO.StreamReader reader = new System.IO.StreamReader("c://test002.log");
string contents = reader.ReadToEnd();
reader.Close();
Console.Write(contents);
Console.Read();

【基础巩固】文件流读写、大文件移动 FileStream StreamWriter File Path Directory/ ,m资料管理器(递归)的更多相关文章

  1. c# 简单文件流读写CSV文件

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.R ...

  2. C++学习47 文件的概念 文件流类与文件流对象 文件的打开与关闭

    迄今为止,我们讨论的输入输出是以系统指定的标准设备(输入设备为键盘,输出设备为显示器)为对象的.在实际应用中,常以磁盘文件作为对象.即从磁盘文件读取数据,将数据输出到磁盘文件.磁盘是计算机的外部存储器 ...

  3. 安卓读写INI文件 安卓读写INI文件

    安卓读写INI文件   安卓读写INI文件 uses System.IoUtils procedure TForm1.Button1Click(Sender: TObject);varIniFile: ...

  4. java读取 500M 以上文件,java读取大文件

    java 读取txt,java读取大文件 设置缓存大小BUFFER_SIZE ,Config.tempdatafile是文件地址 来源博客http://yijianfengvip.blog.163.c ...

  5. Java-使用IO流对大文件进行分割和分割后的合并

    有的时候我们想要操作的文件很大,比如:我们想要上传一个大文件,但是收到上传文件大小的限制,无法上传,这是我们可以将一个大的文件分割成若干个小文件进行操作,然后再把小文件还原成源文件.分割后的每个小文件 ...

  6. 关于 Delphi 中流的使用(2) 用 TFileStream(文件流) 读写

    TStream 是一个抽象的基类, 不能直接生成对象. 在具体的应用中, 主要使用它的子孙类:TFileStream: 文件流TStringStream: 字符串流TMemoryStream: 内存流 ...

  7. java读写大文件

    java读写2G以上的大文件(推荐使用以下方法) static String sourceFilePath = "H:\\DataSource-ready\\question.json&qu ...

  8. Java中使用IO流实现大文件的分裂与合并

    文件分割应该算一个比较实用的功能,举例子说明吧比如说:你有一个3G的文件要从一台电脑Copy到另一台电脑, 但是你的存储设备(比如SD卡)只有1G ,这个时候就可以把这个文件切割成3个1G的文件 ,分 ...

  9. [libcurl]_[0基础]_[使用libcurl下载大文件]

    场景: 1. 在Windows编程时, 下载http页面(html,xml)能够使用winhttp库,可是并非非常下载文件,由于会失败. 由此引出了WinINet库,无奈这个库的稳定性比較低,使用样例 ...

随机推荐

  1. 蓝牙(cc2540) 协议栈 学习一

    ---------------------------------------------------------- app ------------------------------------- ...

  2. LeetCode OJ:Linked List Cycle(链表循环)

    Given a linked list, determine if it has a cycle in it. Follow up:Can you solve it without using ext ...

  3. 【SQL查询】连接多表_join

                          1. inner join 返回两表相匹配的数据,做表中的“1, 2” 和右表中的“5, 6”都不会显示. 2. left join 以左表为主,左表返回所 ...

  4. ActiveReports报表控件V11 SP1版本正式发布!

    无需编码,即可轻松搞定商业报表六大需求的 ActiveReports 报表控件,于今日宣布正式发布 V11 SP1 版本,并在其 官方网站 提供免费下载. V11 版本是 ActiveReports ...

  5. Epoll 实例

    服务端调试: [test@cs2 epoll]$ g++ epoll_server.cpp -o epoll_server -lpthread [test@cs2 epoll]$ ./epoll_se ...

  6. OpenCV-Python cv2.imdecode()和cv2.imencode() 图片解码和编码

    cv2.imdecode()函数从指定的内存缓存中读取数据,并把数据转换(解码)成图像格式;主要用于从网络传输数据中恢复出图像. cv2.imencode()函数是将图片格式转换(编码)成流数据,赋值 ...

  7. ngxtop实时监控nginx状态

    ngxtop实时解析nginx访问日志,并且将处理结果输出到终端,功能类似于系统命令top,所以这个软件起名ngxtop.有了ngxtop,你可以实时了解到当前nginx的访问状况,再也不需要tail ...

  8. ESLint在vue中的使用

    ESLint的用途 1.审查代码是否符合编码规范和统一的代码风格: 2.审查代码是否存在语法错误:  中文网地址 http://eslint.cn/ 使用VSCode编译器在Vue项目中的使用 在初始 ...

  9. [QT]QToolBox 抽屉控件初步学习使用

    创建一个不带界面的widget工程201701100038. main.c #include "widget.h" #include <QApplication> #i ...

  10. HihoCoder1622 : 有趣的子区间(预处理+组合数)

    有趣的子区间 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 如果一个区间[a, b]内恰好包含偶数个回文整数,我们就称[a, b]是有趣的区间. 例如[9, 12]包含 ...