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. Prism5.0新内容 What's New in Prism Library 5.0 for WPF(英汉对照版)

    Prism 5.0 includes guidance in several new areas, resulting in new code in the Prism Library for WPF ...

  2. matlab中double和im2double

    uint8的图像里 im2double其实就是double(I/255); 像素值被标准化到0-1. 16位图像以此类推.

  3. 抓https包

    一.charles抓https 1.打开charles,打开Help--SSL Proxy--Install Charles Root Certificate,charles安装证书,傻瓜式安装即可 ...

  4. c++ 霍夫变换检测直线

    通常这是一幅边缘图像,比如来自 Canny算子.cv:: Houghlines函数的输出是cV::Vec2f向量,每个元素都是一对代表检测到的直线的浮点数(p,0).在下例中我们首先应用 Canny算 ...

  5. HashMap(HashSet)的实现

    0. HashMap(TreeMAP).HashSet.HashTable 的关系 HashMap 的底层则维护着 Node<K, V>[] table; 一个一维数组用于快速访问(只在初 ...

  6. C++ 资源管理 —— RAII

    RAII:在构造函数中申请资源,在析构函数中释放资源. 1. RAII 自动实现锁资源的释放 void bad() { m.lock(); f(); if (COND) return; m.unloc ...

  7. .Net WebApi 添加Swagger

    前言 随着互联网技术的发展,现在的网站架构基本都由原来的后端渲染,变成了:前端渲染.先后端分离的形态,而且前端技术和后端技术在各自的道路上越走越远. 前端和后端的唯一联系,变成了API接口:API文档 ...

  8. 数据结构之最小生成树Prim算法

    普里姆算法介绍 普里姆(Prim)算法,是用来求加权连通图的最小生成树算法 基本思想:对于图G而言,V是所有顶点的集合:现在,设置两个新的集合U和T,其中U用于存放G的最小生成树中的顶点,T存放G的最 ...

  9. PL/SQL Developer 建立远程连接数据库的配置 和安装包+汉化包+注册机

    PL/SQL Developer ,主要是讲一下如何配置PL/SQL Developer ,连接Oracle数据库. [知识点] 1.PL/SQL Developer 是什么? PL/SQL Deve ...

  10. Grunt 新手一日入门

    var sassStyle = 'expanded'; grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), sass: { out ...