标签: file-io

在C#中重命名目录

我无法在任何地方找到DirectoryInfo.Rename(To)或FileInfo.Rename(To)方法.所以,我写了自己的,我在这里发布,供任何人使用,如果他们需要它,因为让我们面对它:MoveTo方法是过度的,如果你只是想重命名一个目录或文件,将总是需要额外的逻辑:

public static class DirectoryExtensions
{
    public static void RenameTo(this DirectoryInfo di, string name)
    {
        if (di == null)
        {
            throw new ArgumentNullException("di", "Directory info to rename cannot be null");
        }

        if (string.IsNullOrWhiteSpace(name))
        {
            throw new ArgumentException("New name cannot be null or blank", "name");
        }

        di.MoveTo(Path.Combine(di.Parent.FullName, name));

        return; //done
    }
}
Run Code Online (Sandbox Code Playgroud)

c# directory file-io rename

61
推荐指数
3
解决办法
11万
查看次数

循环遍历matlab中的文件夹中的文件

我有一天的日志文件,我需要在matlab中解析和查看.

日志文件如下所示:

LOG_20120509_120002_002.csv
(year)(month)(day)_(hour)(minute)(second)_(log part number)
Run Code Online (Sandbox Code Playgroud)

日志每小时递增一次,但有时秒数是一秒或两秒(每小时),这意味着我需要忽略他们所说的事情loadcsv.

我还有另一个文件:

LOG_DATA_20120509_120002.csv
Run Code Online (Sandbox Code Playgroud)

其中包含整个小时的数据(不同的数据).

总体目标是:

 loop through each day 
     loop through each hour
         read in LOG_DATA for whole hour
         loop through each segment
             read in LOG for each segment
                 compile a table of all the data
Run Code Online (Sandbox Code Playgroud)

我想问题是,如果它们不同,我如何忽略当天的会议记录?我怀疑它将循环遍历文件夹中的所有文件,在这种情况下我该怎么做?

csv file-io matlab loops

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

单元测试文件I/O.

通过Stack Overflow上的现有单元测试相关线程读取,我找不到一个有关如何单元测试文件I/O操作的明确答案.我最近才开始研究单元测试,之前已经意识到了这些优点,但是很难习惯先编写测试.我已经设置了我的项目来使用NUnit和Rhino Mocks,虽然我理解它们背后的概念,但我在理解如何使用模拟对象方面遇到了一些麻烦.

具体来说,我有两个问题需要回答.首先,单元测试文件I/O操作的正确方法是什么?其次,在我尝试学习单元测试时,我遇到了依赖注入.在Ninject设置和工作之后,我想知道我是否应该在单元测试中使用DI,或者直接实例化对象.

c# file-io nunit unit-testing dependency-injection

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

如何从.NET中的Stream获取MemoryStream?

我有以下构造方法MemoryStream从文件路径打开一个:

MemoryStream _ms;

public MyClass(string filePath)
{
    byte[] docBytes = File.ReadAllBytes(filePath);
    _ms = new MemoryStream();
    _ms.Write(docBytes, 0, docBytes.Length);
}
Run Code Online (Sandbox Code Playgroud)

我需要更改它以接受Stream而不是文件路径.什么是最简单/最有效的方法来MemoryStreamStream对象获取?

.net c# file-io memorystream stream

60
推荐指数
4
解决办法
10万
查看次数

为什么使用BufferedInputStream比使用FileInputStream更快地逐字节读取文件?

我试图通过使用FileInputStream将文件读入数组,并且~800KB文件花了大约3秒来读入内存.然后我尝试了相同的代码,除了将FileInputStream包装到BufferedInputStream中,它花了大约76毫秒.为什么使用BufferedInputStream以字节逐字节读取文件,即使我仍在逐字节读取它?这是代码(代码的其余部分完全不相关).请注意,这是"快速"代码.如果你想要"慢"代码,你可以删除BufferedInputStream:

InputStream is = null;

    try {
        is = new BufferedInputStream(new FileInputStream(file));

        int[] fileArr = new int[(int) file.length()];

        for (int i = 0, temp = 0; (temp = is.read()) != -1; i++) {
            fileArr[i] = temp;
        }
Run Code Online (Sandbox Code Playgroud)

BufferedInputStream的速度提高了30多倍.远不止于此.那么,为什么会这样,并且可以使这个代码更有效(不使用任何外部库)?

java file-io inputstream fileinputstream

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

在Ruby中读取文件的第一行

我想以最快,最简单,最惯用的方式使用Ruby 读取文件的第一行.什么是最好的方法?

(具体来说:我想从我最新的Capistrano部署的Rails目录中的REVISION文件中读取git commit UUID,然后将其输出到我的标签.这将让我看到http浏览器部署到我的服务器的版本如果有完全不同的更好的方法,请告诉我.)

ruby git file-io capistrano ruby-on-rails

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

打开Excel文件,无需显示即可使用VBA进行读取

我想用宏搜索现有的Excel文件,但我不希望在代码打开这些文件时显示这些文件.有没有办法让它们在"背景"中打开,可以这么说?

excel file-io vba excel-vba

58
推荐指数
7
解决办法
28万
查看次数

IntPtr.Zero相当于null吗?

我试图设置ReadFile为异步运行,根据MSDN,我需要设置lpNumberOfBytesReadnull:

"如果这是一个异步操作,请为此参数使用NULL,以避免可能出现的错误结果."

例如,如果我有以下内容:

  [DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
  public static extern bool ReadFile(
     IntPtr hFile,
     out byte[] aBuffer,
     int cbToRead,
     IntPtr cbThatWereRead,
     ref OVERLAPPED pOverlapped
  );
Run Code Online (Sandbox Code Playgroud)

我这样称呼它(意图使第4个参数为null):

Win32API.ReadFile(readHandle, out data_read, Win32API.BUFFER_SIZE, IntPtr.Zero, ref over_lapped);
Run Code Online (Sandbox Code Playgroud)

是否与使用null调用它相同?如果没有,我应该在声明或函数调用本身中更改什么?

我也好奇,如果我应该使用SafeHandleHandleRef代替IntPtrhFile参考?我知道CloseHandle(IntPtr)当我完成它时确保关闭手柄,只是不确定是否有任何其他理由使用其他两个选项IntPtr.我也在努力避免使用不安全的代码.

编辑:事实证明,我不应该设置第四个参数IntPtr.Zero,因为即使我异步运行,它仍然可以立即返回.见异步磁盘I/O.啊,我喜欢自相矛盾的故事.

c# file-io asynchronous

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

如何将InputStream转换为FileInputStream

我的程序中有这一行:

InputStream Resource_InputStream=this.getClass().getClassLoader().getResourceAsStream("Resource_Name");
Run Code Online (Sandbox Code Playgroud)

但是如何从它获取FileInputStream [Resource_InputStream]?

java file-io

58
推荐指数
2
解决办法
12万
查看次数

为什么只读打开命名管道块?

在使用Python在各种UNIX(Linux,FreeBSD和MacOS X)下处理命名管道(FIFO)时,我注意到了一些奇怪的事情.第一个,也许是最烦人的是尝试打开空闲/空闲FIFO只读将被阻止(除非我使用os.O_NONBLOCK较低级别的os.open()调用).但是,如果我打开它进行读/写,那么我就不会阻塞.

例子:

f = open('./myfifo', 'r')               # Blocks unless data is already in the pipe
f = os.open('./myfifo', os.O_RDONLY)    # ditto

# Contrast to:
f = open('./myfifo', 'w+')                           # does NOT block
f = os.open('./myfifo', os.O_RDWR)                   # ditto
f = os.open('./myfifo', os.O_RDONLY|os.O_NONBLOCK)   # ditto
Run Code Online (Sandbox Code Playgroud)

我只是好奇为什么.为什么打开调用块而不是后续的一些读操作?

另外我注意到非阻塞文件描述符可以表现为Python中的不同行为.在我使用的情况下os.open()os.O_NONBLOCK初始开启操作那么os.read()似乎如果数据还没有准备好文件描述符返回一个空字符串.但是,如果我使用fcntl.fcnt(f.fileno(), fcntl.F_SETFL, fcntl.GETFL | os.O_NONBLOCK)然后os.read引发异常(errno.EWOULDBLOCK)

是否有一些其他标志open()由我的os.open()例子未设置的法线设置?它们有什么不同,为什么?

file-io posix nonblocking named-pipes fifo

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