Tag: 文件

C#处理固定宽度文件

我有一组固定宽度的文件,具有不同数量的列和字段大小。 文件顶部以如下行开头: AAAAABBCCCCCCCCCCDDD等 字符的变化表示一个字段的结束和另一个字段的开始。 我猜这可以用某人来计算字段大小与代码的关系,然后将相同的值应用于下面的实际数据行。 然后我想将所有读取的数据输出到XLS文件甚至是DataGrid,但我的问题是我不知道如何编写这个。 任何帮助将不胜感激 :) /编辑: 我实现了Cuong的解决方案,尽管在我的家用PC上进行测试工作正常,但由于我们的工作PC有Windows XP,我不得不用c#v4编译它。 无论如何,当读取输入文件时,我收到以下错误: ************** Exception Text ************** System.ObjectDisposedException: Cannot read from a closed TextReader. at System.IO.__Error.ReaderClosed() at System.IO.StreamReader.ReadLine() at System.IO.File.d__0.MoveNext() at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext() at System.IO.File.InternalWriteAllLines(TextWriter writer, IEnumerable`1 contents) at System.IO.File.WriteAllLines(String path, IEnumerable`1 contents) at FixedWidthFiles.Main.buttonProcessFile_Click(Object sender, EventArgs e) at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) […]

如何使用C#保持acad.exe运行在Autocad中关闭文件?

我正在使用visual studio 2010,我有一个.DWG文件,我想在autocad中打开。 直到现在我已经用过了。 Process p = new Process(); ProcessStartInfo s = new ProcessStartInfo(“D:/Test File/” + fileName); p.StartInfo = s; p.Start(); 但我想要的是关闭Autocad中的文件,而不是autocad本身。 (表示atocad.exe应该继续运行)。 直到现在我已经使用过这个,但它关闭了acad.exe而不是文件。 foreach (Process Proc in Process.GetProcesses()) { if (Proc.ProcessName.Equals(“acad”)) { Proc.CloseMainWindow(); Proc.Kill(); } }

Mimic File.Move如果目标已存在

从File.Move的文档: 请注意,如果您尝试通过将同名文件移动到该目录来替换文件,则会出现IOException。 您不能使用Move方法覆盖现有文件。 简而言之,你不能在Move覆盖,所以为了便于覆盖Move,我通过执行File.Copy后跟File.Delete模仿行为。 就像是: if (File.Exists(dstFileName)) { // System.IO.File.Move cannot be used to overwrite existing files, so we’re going // to simulate that behavior with a Copy & Delete. File.Copy(procContext.FileName, dstFileName); File.Delete(procContext.FileName); } else File.Move(procContext.FileName, dstFileName); 我的问题是:是否有任何我需要防范的情况可能会导致源文件被删除而不首先被成功复制? 我从阅读文档中得到的理解是,由于File.Copy不会返回任何在任何情况下都不会成功的情况下应该抛出exception。 有没有人遇到过任何不真实的情况?

如何在C#中根据RegEx查找文件

我需要获取某些驱动器上具有匹配特定模式的路径的文件列表,例如FA \ d \ d \ d \ d.xml其中\ d是数字(0,1,2..9)。 所以文件可以有像FA5423.xml这样的名称。 这样做最有效的名字是什么?

如何知道内容类型,如何获得正确的文件扩展名

我有一个包含文件数据的byte []。 数组可以包含几种不同文件类型的数据,如xml,jpg,html,csv等。 我需要将该文件保存在磁盘中。 我正在寻找ac#代码,以便在您了解内容类型时找到正确的文件扩展名,但不确定文件扩展名?

无法在Web API中正确获取文件扩展名

我在ASP.NET MVC和Angular的项目构建中使用了一个方法并检索从数据库中存储的文件而没有任何问题: [HttpPost] public ActionResult GetFile(int id) { var file= service.GetFileById(id); if (file.Data != null) { return File(file.Data, file.MimeType, file.Name); } return new EmptyResult(); } 另一方面,当我想在我的Web Api控制器中使用相同的方法时,没有这种类型的File()方法,我在查看stackoverflow上的15-20解决方案之后尝试使用以下方法: [Route(“api/Generate/{id}”)] [AcceptVerbs(“GET”, “POST”)] public HttpResponseMessage Generate(int id) { var data = service.GetFileByName(id); var stream = new MemoryStream(); var result = new HttpResponseMessage(HttpStatusCode.OK) { Content = new ByteArrayContent(stream.ToArray()) }; […]

使用FileStream.Seek

我正在尝试使用FileStream.Seek快速跳转到一行并阅读它。 但是,我没有得到正确的结果。 我试着看了一会儿,却无法理解我做错了什么。 环境: 操作系统:Windows 7 框架:.NET 4.0 IDE:Visual C#Express 2010 文件位置中的示例数据:C:\ Temp \ Temp.txt 0001 | 100 2500! 技术| 100 2500! 0003 | 100 2500! 0004 | 100 2500! 0005 | 100 2500! 0006 | 100 2500! 0007 | 100 2500! 0008 | 100 2500! 0009 | 100 2500! 0010 | 100 2500! 代码: […]

C#exception。 文件正由另一个进程使用

我正在玩C#,我遇到了一个问题。 当我尝试创建一个新文件时,程序会断开并说该文件正被另一个进程使用。 这可能是我忽略的愚蠢,但我无法弄明白! 这是我的代码: using System; using System.IO; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace myNameSpace { public partial class MainWindow : Form { public static string folderPath = @”fullpath”; public MainWindow() { InitializeComponent(); StoredTb.Text = folderPath; String[] files = Directory.GetFiles(folderPath); foreach (string file in files) myDropDown.Items.Add(Path.GetFileNameWithoutExtension(file)); […]

获取用我的应用程序打开的文件的路径+文件名

我是c#的业余爱好者,我一直无法找到答案。 也许我不知道正确使用的术语。 当video文件被拖到我的exe应用程序上时,我希望应用程序知道它是用文件启动的,并且能够知道该文件的路径和文件名。 这样,用户不必使用文件>打开菜单。 希望有道理。 谢谢

检查文件是否正在使用而不尝试catch?

有没有办法可以检查文件是否正在使用或者是否被其他进程打开而不仅仅是尝试打开它并捕获exception? 有没有服务方法来测试这样的事情?