相关疑难解决方法(0)

有没有办法检查文件是否正在使用?

我正在用C#编写一个需要重复访问1个图像文件的程序.大部分时间它都可以工作,但如果我的计算机运行速度很快,它会在将文件保存回文件系统之前尝试访问该文件并抛出错误:"另一个进程正在使用的文件".

我想找到解决这个问题的方法,但是我所有的谷歌搜索都只是通过使用异常处理来创建检查.这违背了我的宗教信仰,所以我想知道是否有人有更好的方法呢?

.net c# file-io file file-locking

809
推荐指数
11
解决办法
49万
查看次数

读取CSV文件并将值存储到数组中

我正在尝试读取*.csv文件.

所述*.csv-file包括由分号分隔的两列的(" ; ").

我能够*.csv使用StreamReader 读取-file,并能够使用该Split()函数分隔每一行.我想将每列存储到一个单独的数组中然后显示它.

有可能吗?

.net c# csv arrays

295
推荐指数
12
解决办法
78万
查看次数

Stream.Dispose总是调用Stream.Close(和Stream.Flush)

如果我有以下情况:

StreamWriter MySW = null;
try
{
   Stream MyStream = new FileStream("asdf.txt");
   MySW = new StreamWriter(MyStream);
   MySW.Write("blah");
}
finally
{
   if (MySW != null)
   {
      MySW.Flush();
      MySW.Close();
      MySW.Dispose();
   }
}
Run Code Online (Sandbox Code Playgroud)

MySW.Dispose()即使提供了,我可以打电话并跳过关闭吗?是否存在任何不能按预期工作的Stream implament(如CryptoStream)?

如果没有,那么以下只是错误的代码:

using (StreamWriter MySW = new StreamWriter(MyStream))
{
   MySW.Write("Blah");
}
Run Code Online (Sandbox Code Playgroud)

.net c# using

62
推荐指数
3
解决办法
4万
查看次数

我需要处理 FileStream 对象吗?

我对我的编程知识感到非常沮丧,但我们真的需要处理 FileStream Object 吗?

我问的原因是因为代码在 100 种情况下抛出“另一个进程正在使用的文件”异常,并且有一段时间好像我再次尝试(使用文件流下载文件)它工作正常。

代码请参考这个问题

由于它只发生在 100 次左右,这让我很困惑,而且它发生在生产服务器上,所以根本无法调试,但在我的开发机器上运行良好......

c# web-services

7
推荐指数
2
解决办法
9163
查看次数

在StreamWriter和StreamReader上完成

如果我有这个:

StreamWriter cout = new StreamWriter("test.txt");
cout.WriteLine("XXX");

// here IOException...
StreamReader cin = new StreamReader("test.txt");
string text = cin.ReadLine();
Run Code Online (Sandbox Code Playgroud)

clr扔了一个IOException因为我没有关闭cout.

事实上,如果我这样做:

StreamWriter cout = new StreamWriter("test.txt");
cout.WriteLine("XXX");

cout.Close();

StreamReader cin = new StreamReader("test.txt");
string text = cin.ReadLine();
Run Code Online (Sandbox Code Playgroud)

我也不例外.

但是如果我这样做然后退出应用程序:

StreamReader cin = new StreamReader("test.txt");
string text = cin.ReadLine();
Run Code Online (Sandbox Code Playgroud)

无需关闭cin文件即可从OS打开和写入.

但是,阅读StreamReader.cs我的源代码并没有'找到析构函数方法(即~StreamReader(...)).那么如果垃圾收集器没有调用Dispose并且没有终结方法,谁会释放该文件?

c#

6
推荐指数
2
解决办法
269
查看次数

如何检查StreamReader是否仍处于打开状态?

我尝试用一些额外的方法和属性"包装"一个StreamReaderFichier.

我想要两件事:

  • StreamReader在自动打开Fichier类;
  • StreamReader当我们使用overrided方法打开ReadLine,而不是之前(我们需要有阅读它之前修改文件StreamReader).

我的一段代码看起来像这样:

public string ReadLine()
{
    if (Reader == null || ???)
    {
        Reader = new StreamReader(Path);
    }
    return Reader.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

???,我想检查StreamReader是否已关闭.的确,如果我们这样做:

StreamReader sr = new StreamReader(path);
sr.Close();
Run Code Online (Sandbox Code Playgroud)

sr 不是null,但如何检查它是否已关闭,以及如何重新打开它?

如果你想知道我为什么需要打开和关闭StreamReader,那是因为Fichier对象需要随时存在,但是它所代表的文件需要在外部程序中多次修改.

c#

5
推荐指数
1
解决办法
1万
查看次数

C#即使使用close()仍在使用中的文件,追加不起作用

我一直试图写这个以便列出我的文件夹,附加部分不起作用,它重写了整个内容,如果我在不退出应用程序的情况下尝试列出其他内容,它也会给出“文件正在使用中“对我来说没有意义的错误,因为我在每个循环结束时都使用了close()。

我已经在这里检查了几乎所有的Microsoft文档和许多帖子,但找不到我的答案。

显示我得到的错误的图片

在此先多谢!

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace Anime_Lister
{
    public partial class Anime0Lister : Form
    {


        public void Appen()
        {
            using (System.IO.StreamWriter file = new System.IO.StreamWriter(path0save.Text, true))
            {


                DirectoryInfo directory = new DirectoryInfo(path0tb.Text);

                DirectoryInfo[] directory0Arr = directory.GetDirectories();

                foreach (DirectoryInfo dir in directory0Arr)
                {
                    String Parent = Convert.ToString(dir.Parent);
                    String Name = Convert.ToString(dir.Name);
                    String Root = Convert.ToString(dir.Root);


                    File.AppendAllText(path0save.Text, Parent);
                    File.AppendAllText(path0save.Text, "   || ");
                    File.AppendAllText(path0save.Text, …
Run Code Online (Sandbox Code Playgroud)

c# io append

1
推荐指数
1
解决办法
165
查看次数

标签 统计

c# ×7

.net ×3

append ×1

arrays ×1

csv ×1

file ×1

file-io ×1

file-locking ×1

io ×1

using ×1

web-services ×1