Tag: 文件

获取已打开文件的用户名

有没有办法学习打开文件的用户的用户名? 我正在开发一个程序,它将成为许多用户的桌面客户端。 应用程序将打开一些文件,我希望允许许多用户同时打开文件,但只允许第一个用户具有写权限。 我想要的是能够告诉对文件具有写访问权限的其他用户。 这是应用程序可以学习的东西吗? (我在VS 2008中开发)。

已有文件System.IO.Path.GetRandomFileName()的概率

最近我得到了例外: Message: System.IO.IOException: The file ‘C:\Windows\TEMP\635568456627146499.xlsx’ already exists. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 这是我用于生成文件名的以下代码的结果: Path.Combine(Path.GetTempPath(), DateTime.Now.Ticks + “.xlsx”); 在意识到可以在一个Tick中创建两个文件之后,我将代码更改为: Path.Combine(Path.GetTempPath(), Path.GetRandomFileName() + “.xlsx”); 但我仍然想知道新案件中上述例外的可能性是多少?

c#程序中的System.IO.Compression.FileSystem.dll

我想在我的项目中使用dll System.IO.Compression.FileSystem.dll .net框架版本是4.5,操作系统是64.问题是找不到dll。 解决办法是什么?

DirectoryInfo.GetFiles,如何在C#中获取不同类型的文件

如何在C#中使用DirectoryInfo.GetFiles函数找到文件类型* .gif和* .jpg? 当我尝试这段代码时: string pattern = “*.gif|*.jpg”; FileInfo[] files = dir.GetFiles(pattern); 例外“路径中的非法字符”。 被抛出。

如何在C#中使用FILE_ATTRIBUTE_TEMPORARY创建文件?

如何在C#中使用FILE_ATTRIBUTE_TEMPORARY创建文件? (所以在Ram中存储数据但是能够将它用作普通文件)

是否有java.util.Properties类的C#模拟

Java有一个很好的类,它可以保存基本的配置信息,例如你希望从一个会话到下一个会话持久化的gui设置。 我记得它保存并检索键值对,并且使用起来非常简单。 我一直在寻找C#的类比,但没有成功。 我错过了吗? 如果没有,那么除了保存/读取custrom文本文件以保存简单的应用程序设置之外,还有什么吗? (“超越”的衡量标准是简单)。

在同一进程中的同一文件上创建2个FileStream

我正在尝试创建一个将自动删除的临时文件。 stream = new FileStream( tmpFilePath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite, 4096, FileOptions.DeleteOnClose|FileOptions.RandomAccess ); 此文件将由第三方API使用,该API也将创建FileStream: stream = new FileStream( tmpFilePath, FileMode.Open, FileAccess.Read, FileShare.Read); 我想我已经尝试了所有可能的标志组合,但我总是得到一个“进程无法访问文件’XXX’,因为它正被另一个进程使用……” 难道我做错了什么? 有办法吗?

FileStream的同步要求。(开始/结束)(读/写)

.Net FileStream是否可以接受以下multithreading调用模式? 几个线程调用这样的方法: ulong offset = whatever; // different for each thread byte[] buffer = new byte[8192]; object state = someState; // unique for each call, hence also for each thread lock(theFile) { theFile.Seek(whatever, SeekOrigin.Begin); IAsyncResult result = theFile.BeginRead(buffer, 0, 8192, AcceptResults, state); } if(result.CompletedSynchronously) { // is it required for us to call AcceptResults […]

为什么空文本文件包含3个字节?

我在vs2010中的C#项目中使用了一个文本文件。 我添加到解决方案并将其“复制输出”设置为“始终复制”。 当我使用下面的代码时,它给出了前导三个字节或utf8一个字节的文本结果。 我查看了windows explorers文件属性,其大小显示为3个字节。 public static string ReadFile(string fileName) { FileStream fs = null; try { fs = new FileStream(fileName, FileMode.Open); FileInfo fi = new FileInfo(fileName); byte[] data = new byte[fi.Length]; fs.Read(data, 0, data.Length); fs.Close(); fs.Dispose(); string text = Encoding.ASCII.GetString(data); return text; } catch (Exception) { if(fs != null) { fs.Close(); fs.Dispose(); } return […]

将大字符串写入文件的最佳方法

在C#中,我正在读取中等大小的文件(100 KB~1 MB),修改内容的某些部分,最后写入不同的文件。 所有内容都是文字。 修改是作为字符串对象和字符串操作完成的。 我目前的做法是: 使用StreamReader读取原始文件中的每一行。 打开StringBuilder以获取新文件的内容。 修改字符串对象并调用StringBuilder AppendLine (直到文件末尾) 打开一个新的StreamWriter ,并将StringBuilder写入写入流。 但是,我发现StremWriter.Write截断32768字节(2 ^ 16),但StringBuilder的长度大StremWriter.Write 。 我可以编写一个简单的循环来保证整个字符串到文件。 但是,我想知道在执行此任务时C#中最有效的方法是什么? 总而言之,我只想修改文本文件的某些部分并写入不同的文件。 但是,文本文件大小可能大于32768字节。 ==答案==我很抱歉让你烦恼! 只是我没有打电话给flush 。 StremWriter.Write没有短(例如,2 ^ 16)限制。