Tag: file io

在InstalledLocation StorageFolder中尝试CreateFileAsync时拒绝访问?

我在InstalledLocation StorageFolder中尝试CreateFileAsync时拒绝Access StorageFolder storageFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; StorageFile file = await storageFolder.CreateFileAsync(“fileNmae”, Windows.Storage.CreationCollisionOption.ReplaceExisting); 我也试过了 var storageFolder = await StorageFolder.GetFolderFromPathAsync(“ms-appx:///”); 得到“价值不在预期的范围内” 我可以在Windows.Storage.ApplicationData.Current.LocalFolder CreateFileAsync ,然后将CopyAsync到InstalledLocation StorageFolder? StorageFolder storageFolder = Windows.Storage.ApplicationData.Current.LocalFolder; StorageFile file = await storageFolder.CreateFileAsync(“fileName”, Windows.Storage.CreationCollisionOption.ReplaceExisting); StorageFolder installedLocationFolder = Windows.ApplicationModel.Package.Current.InstalledLocation; var result = await file.CopyAsync(installedLocationFolder, “fileName”, Windows.Storage.NameCollisionOption.ReplaceExisting); 但InstalledLocation StorageFolder中的CreateFileAsync拒绝访问? 是因为安全原因还是我在这里编码错了?

从C#Resources读取文本文件

我需要从我的资源中读取一个文件并将其添加到列表中。 我的代码: private void Form1_Load(object sender, EventArgs e) { using (StreamReader r = new StreamReader(Assembly.GetExecutingAssembly().GetManifestResourceStream(“myProg.myText.txt”))) { //The Only Options Here Are BaseStream & CurrentEncoding } } 我搜索了这个,只得到了像”Assembly.GetExecutingAssembly….”这样的答案,但我的程序没有选择汇编。

如果filename包含某个单词,则从目录中删除文件

我需要检查一个目录,看看是否有文件名包含特定关键字的文件,如果有,则删除它们。 这可能吗? 例如,删除文件名中包含关键字“Apple”的“ C:\Folder ”中的所有现有文件。

使用c#删除大量(> 100K)文件,同时保持Web应用程序的性能?

我试图从一个位置删除大量文件(大的意思是超过100000),从而从网页启动操作。 显然我可以使用 string[] files = System.IO.Directory.GetFiles(“path with files to delete”); foreach (var file in files) { IO.File.Delete(file); } Directory.GetFiles http://msdn.microsoft.com/en-us/library/wz42302f.aspx 此方法已经发布了几次: 如何删除目录中的所有文件和文件夹? 如果filename包含某个单词,则从目录中删除文件 但是这个方法的问题在于,如果你说十万个文件就会成为一个性能问题,因为它必须首先生成所有的文件路径然后再循环它们。 如果网页正在等待正在执行此操作的方法的响应,则添加到此,因为您可以想象它看起来有点垃圾! 我有一个想法是在一个不正常的Web服务调用中将它包装起来,当它完成时它会激活对网页的响应,说它们已被删除了吗? 也许将删除方法放在一个单独的线程中? 或者甚至可以使用单独的批处理来执行删除? 在尝试计算目录中的文件数时,我遇到了类似的问题 – 如果它包含大量文件。 我想知道这是否有点矫枉过正? 即有一个更简单的方法来处理这个? 任何帮助,将不胜感激。

System.IO.IOException:另一个进程使用的文件

我一直在研究这段似乎微不足道的小代码,但我仍然无法确定问题出在哪里。 我的function很简单。 打开文件,复制其内容,替换内部的字符串并将其复制回原始文件(然后在文本文件中进行简单的搜索和替换)。 我真的不知道怎么做,因为我在原始文件中添加了行,所以我只创建了一个文件副本,(file.temp)副本也备份(file.temp)然后删除原始文件(文件)并将file.temp复制到文件。 我在删除文件时遇到exception。 以下是示例代码: private static bool modifyFile(FileInfo file, string extractedMethod, string modifiedMethod) { Boolean result = false; FileStream fs = new FileStream(file.FullName + “.tmp”, FileMode.Create, FileAccess.Write); StreamWriter sw = new StreamWriter(fs); StreamReader streamreader = file.OpenText(); String originalPath = file.FullName; string input = streamreader.ReadToEnd(); Console.WriteLine(“input : {0}”, input); String tempString = input.Replace(extractedMethod, modifiedMethod); […]

从.NET下载大文件并在.NET中使用resume / retry支持?

如何在我的应用程序中实现从HTTP下载大文件(~500MB)? 我想支持自动恢复/重试,这样当连接断开连接时,我的应用程序可以尝试重新连接以获取文件并避免重新下载下载的部分,如果可能的话(我知道,这也取决于服务器)。 这类似于下载管理器和某些浏览器中的行为。

更好用C#搜索所有文件中的字符串

在参考了很多博客和文章之后,我已经达到了以下代码,用于在文件夹内的所有文件中搜索字符串。 它在我的测试中运行良好。 质询 有没有更快的方法(使用C#)? 是否有任何方案会因此代码而失败? 注意:我测试了非常小的文件。 文件数量也很少。 码 static void Main() { string sourceFolder = @”C:\Test”; string searchWord = “.class1″; List allFiles = new List(); AddFileNamesToList(sourceFolder, allFiles); foreach (string fileName in allFiles) { string contents = File.ReadAllText(fileName); if (contents.Contains(searchWord)) { Console.WriteLine(fileName); } } Console.WriteLine(” “); System.Console.ReadKey(); } public static void AddFileNamesToList(string sourceDir, List allFiles) { […]

将JPEG图像转换为字节数组 – COMexception

使用C#,我正在尝试从磁盘加载JPEG文件并将其转换为字节数组。 到目前为止,我有这个代码: static void Main(string[] args) { System.Windows.Media.Imaging.BitmapFrame bitmapFrame; using (var fs = new System.IO.FileStream(@”C:\Lenna.jpg”, FileMode.Open)) { bitmapFrame = BitmapFrame.Create(fs); } System.Windows.Media.Imaging.BitmapEncoder encoder = new System.Windows.Media.Imaging.JpegBitmapEncoder(); encoder.Frames.Add(bitmapFrame); byte[] myBytes; using (var memoryStream = new System.IO.MemoryStream()) { encoder.Save(memoryStream); // Line ARGH // mission accomplished if myBytes is populated myBytes = memoryStream.ToArray(); } } 但是,执行ARGH行给我的信息是: COMException未处理。 句柄无效。 […]

等待在C#中创建文件

是否有内置方法等待在c#中创建文件? 如何等待文件完全写入? 我通过在文件上反复尝试File.OpenRead()直到它成功(并且在超时时失败)来烘焙自己,但是在文件上旋转似乎不是正确的事情。 我猜测在.NET中有一个烘焙方法可以做到这一点,但我找不到它。

从WPF中的包URI打开文件

我希望从应用程序包中打开一个.csv文件来进行一些unit testing。 所以我真正喜欢的是模拟File.ReadAllText(string path) ,而不是X.ReadAllText(Uri uri) 。 我还没有找到这个。 有没有人知道是否可以从包中的文件读取文本/字节(不介意哪些)而不首先将此文件编译到磁盘? 哦,顺便说File.ReadAllText(@”pack://application:,,,/SpreadSheetEngine/Tests/Example.csv”) , File.ReadAllText(@”pack://application:,,,/SpreadSheetEngine/Tests/Example.csv”)对我来说不起作用..我已经在做var app = new Application()确保我在unit testing期间启动了一个包的技巧。