C#在同一目录生成不重名文件 C#在同一目录生成不重名文件如何实现……思路…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Guid gd = Guid.NewGuid(); string str1= gd.ToString();用Guid 这个基本不会出现重名的,不然就自已产生不重复的随机数 时间怎么能唯一?通常是GUID,或者检查文件名,如果以存在,就加_0,_1等。 要类似于windows新建文件夹一样…… 类似于windows新建文件夹一样就是设个默认名字然后循环去判断这个名字的文件夹是否存在如果存在就在后面加"1"再创建否则就直接创建 private void button1_Click(object sender, EventArgs e){ var index = 0; var filename = ""; do { filename = string.Format(@"c:\temp\新文件{0}.txt", index++); } while (File.Exists(filename)); File.Create(filename);} 遍历文件夹获取同名文件数量DateTime.Now.ToString()或Guid 以我们现有项目来说吧,如果不是临时文件的话就获取当前系统时间加上一个递增数字做序列,以时间为文件名直观,而如果是临时文件,例如放入系统temp中话就采用Guid gd = Guid.NewGuid() 遍历文件夹获取同名文件数量DateTime.Now.ToString()或Guid组合使用啊! 遍历文件夹获取同名文件数量DateTime.Now.ToString()或Guid while(true){ if(文件不存在) return 文件名; 文件名后坠个随机数;};可参看一下:DateTime.Now.Ticks GUID 不可能重复的 只要创建Guid的时候关联好文件名,找回来不难的 或许文件名用这样表现就足以解决了string filename = DateTime.Now.ToString("yyyyMMddHHmmss"); 情况是这样的:假设我在生成 C:\CSDN.txt 再生成一次 C:\CSDN(1).txt 再生成一次 C:\CSDN(2).txt ……命名不重复应该可以做到,但是怎么简单点的去判断在最新的文件名(如C:\CSDN(2).txt)的基础上再去命名新的文件名…… /// <summary> /// 得到文件路径(防止有文件名重复) /// 如:aaa.txt已经在directory目录下存在,则会得到文件aaa(1).txt /// </summary> /// <param name="directory">目录名</param> /// <param name="file">文件名</param> /// <returns>文件路径</returns> static int i = 0; static string Path = String.Empty; public static string GetPath(string directory, string file) { if (Path == String.Empty) { Path = Path.Combine(directory, file); } string path = Path.Combine(directory, file); if (File.Exists(path)) { i++; string filename = Path.GetFileNameWithoutExtension(Path) + "(" + i.ToString() + ")"; string extension = Path.GetExtension(Path); return GetPath(directory, filename + extension); } else { i = 0; Path = String.Empty; return path; } } 请教正则表达式 VS2008 GridView的智能小窗口中没有“启用编辑”和“启用删除”选项?? 页面数据载入后的定位问题 关于Vista文件虚拟重定向的问题 这样的“数据汇总”过程怎么处理比较好? 请教byte[]字节数组的排位? 如何删除DataGrid中的行? 虽然我只有800分,我也要尝尝散200分的滋味,散! 妈妈明天做手术,各位说点祝福的话,散分 sql 语句的简单问题 随项目打包的.net formwork3.5安装错误 请问有关WCF的一个基础问题
string str1= gd.ToString();用Guid 这个基本不会出现重名的,不然就自已产生不重复的随机数
时间怎么能唯一?
通常是GUID,或者检查文件名,如果以存在,就加_0,_1等。
然后循环去判断这个名字的文件夹是否存在
如果存在就在后面加"1"再创建
否则就直接创建
{
var index = 0;
var filename = "";
do
{
filename = string.Format(@"c:\temp\新文件{0}.txt", index++);
} while (File.Exists(filename));
File.Create(filename);
}
DateTime.Now.ToString()
或Guid
DateTime.Now.ToString()
或Guid组合使用啊!
DateTime.Now.ToString()
或Guid
{
if(文件不存在)
return 文件名;
文件名后坠个随机数;
};可参看一下:DateTime.Now.Ticks
再生成一次 C:\CSDN(1).txt
再生成一次 C:\CSDN(2).txt
……
命名不重复应该可以做到,但是怎么简单点的去判断在最新的文件名(如C:\CSDN(2).txt)的基础上再去命名新的文件名……
/// <summary>
/// 得到文件路径(防止有文件名重复)
/// 如:aaa.txt已经在directory目录下存在,则会得到文件aaa(1).txt
/// </summary>
/// <param name="directory">目录名</param>
/// <param name="file">文件名</param>
/// <returns>文件路径</returns>
static int i = 0;
static string Path = String.Empty;
public static string GetPath(string directory, string file)
{
if (Path == String.Empty)
{
Path = Path.Combine(directory, file);
}
string path = Path.Combine(directory, file);
if (File.Exists(path))
{
i++;
string filename = Path.GetFileNameWithoutExtension(Path) + "(" + i.ToString() + ")";
string extension = Path.GetExtension(Path);
return GetPath(directory, filename + extension);
}
else
{
i = 0;
Path = String.Empty;
return path;
}
}