我是C#的初学者,我有一个正在从中读取文件的文件夹。我想读取位于解决方案文件的父文件夹中的文件。我该怎么做?stringpath="";StreamReadersr=newStreamReader(path);因此,如果我的文件XXX.sln位于C:\X0\A\XXX\中,则读取.txt中的文件C:\X0\A\。 最佳答案 您可能会喜欢这个更通用的解决方案,它依赖于通过扫描当前目录或选定目录的所有父目录来找到解决方案*.sln文件,同时涵盖找不到解决方案目录的情况!publicstaticclassVisualStudioProvi
是否有标准函数来检查指定目录是否有效?我问的原因是我从用户那里收到了一个绝对目录字符串和文件名,我想对位置进行完整性检查以检查它是否有效。 最佳答案 对于一个文件File.Exists(string)目录Directory.Exists(string)注意:如果您正在重用一个对象,您应该考虑使用FileInfo类与静态File类。File类的静态方法每次都进行可能不必要的安全检查。FileInfo-DirectoryInfo-File-DirectoryFileInfofi=newFileInfo(fName);if(fi.Exis
我创建了一个可移植类库,用于我的Monodroid项目。但问题是我需要System.IO库,但不幸的是我无法添加它。我什至尝试通过“添加引用”选项添加它,但没有成功。为什么会这样?我该怎么做? 最佳答案 您不能使用System.IO,因为它不是可移植类库。System.IO进行特定于其运行的操作系统(Windows)的调用,而可移植类库是跨平台的。可以找到您正在寻找的解决方案here:Whatshouldyoudowhenyou’retryingtowriteaportablelibrarybutyouneedsomefunctio
使用system.io.file类删除文件后:System.IO.File.Delete(openedPdfs.path);如果文件被成功删除,我需要运行一些代码。只要该方法不返回任何值,我就会在delete方法之后检查文件是否存在。如果它仍然存在,我认为操作失败。问题是,删除方法工作正常,但要删除文件需要几秒钟。Exist函数返回true,因为当时它正在检查文件是否存在。我如何确定System.IO.File.Delete(openedPdfs.path);是否成功完成?代码:FileInfofile=newFileInfo(openedPdfs.path);System.IO.Fi
考虑Socket.BeginSend()方法。如果两个线程池线程同时调用此方法,它们各自的消息最终会相互混合还是套接字类会阻止这种情况发生? 最佳答案 .NETSocket实例不是线程安全的,因为同时调用某些方法(相同或不同的方法)可能会导致状态不一致。但是,BeginSend()和BeginReceive()方法本身是线程安全的。对每个(或两者)进行多次未完成调用是安全的。在BeginReceive()的情况下,当数据以调用的顺序可用时,它们将被服务。例如,如果您的处理时间很长,但您希望其他接收尽快发生,这将很有用。当然,在这种情
我有一个多线程C#应用程序,它创建文件,打开它们进行处理,然后在完成后删除它们。此应用程序可以预期处理1-100个文件。有点随机(很可能归因于应用程序的多线程性质)当我尝试在处理后删除文件时遇到共享冲突。我的直觉告诉我,维克,你在尝试删除文件之前没有正确关闭/处置文件。如果每个文件都发生这种情况,我会凭直觉去做,但事实并非如此。所以,我试图找出我在哪里犯了错误。外面有人对如何调试此类异常有任何指示吗?如果有意义的话,我很乐意在文件上看到堆栈跟踪。我将尝试展示伪代码,但是,我的问题更多是关于如何调试此类异常:申请事件:操作开始+=创建新处理器。传输文件+=Processor.Proces
我想将可在iOS应用中的UITextField中输入的字符数限制为25个字符。根据thispost,它可以在Objective-C中像这样完成:-(BOOL)textField:(UITextField*)textFieldshouldChangeCharactersInRange:(NSRange)rangereplacementString:(NSString*)string{NSUIntegernewLength=[textField.textlength]+[stringlength]-range.length;return(newLength>25)?NO:YES;}如何使用
我正在尝试将图像编码为字节数组并将其发送到服务器。编码和发送部分工作正常,但我的问题是字节数组太大,发送时间太长,所以我认为压缩它会使它运行得更快。但实际问题是我不能使用system.io或流。我的目标是.net2.0。谢谢。 最佳答案 usingSystem.IO;usingSystem.IO.Compression;代码:publicstaticbyte[]Compress(byte[]data){MemoryStreamoutput=newMemoryStream();using(DeflateStreamdstream=
目前,我通过使用SSL流实现了一个有效的实现,封装在缓冲流中,并且只使用字节数组在流上调用读/写。我想让它更快,从一些阅读来看,System.IO.Pipelines似乎是实现高性能IO的方式。我读过的很多文章/演示仅演示了直接使用套接字的代码——这似乎对我不起作用,因为我使用的是SSL。我发现了一些从流中获取管道读取器/写入器的扩展>Stream.UsePipeReader()或Stream.UsePipeWriter()所以我尝试调用SSLStream.UsePipeReader()但是我总是得到错误:System.NotSupportedException:TheReadAsyn
由于我必须在我的应用程序中进行大量文件I/O操作,我决定异步实现它们。查看MSDN,没有File.Create、File.Delete和File.Move的异步副本。据我了解,原因是不存在用于文件删除、创建或移动的异步Win32实现,所以我最终得到以下解决方案:publicstaticTaskDeleteAsync(stringpath){Guard.FileExists(path);returnTask.Run(()=>File.Delete(path));}publicstaticTaskCreateAsync(stringpath){Guard.IsNotNullOrWhites