0

このコードを実行すると:

static void Main(string[] args)
    {
        var currentDirectory = Directory.GetCurrentDirectory();
        var searchDirectory = new DirectoryInfo(currentDirectory);

        var queryMatchingFiles =
                from file in searchDirectory.GetFiles()
                let fileContent = System.IO.File.ReadAllText(file.Name)
                select file.Name;

        StreamWriter outputCacheMeta = new StreamWriter(@"output.txt");

        foreach (var fileName in queryMatchingFiles.Where(fileName => !fileName.EndsWith(".txt") && !fileName.EndsWith(".exe") && !fileName.EndsWith(".xz")))
        {
            // start the converion utility
            ProcessStartInfo startInfo = new ProcessStartInfo();
            startInfo.FileName = "xz.exe";
            startInfo.Arguments = "-k -z " + fileName;
            startInfo.CreateNoWindow = true;
            startInfo.WindowStyle = ProcessWindowStyle.Hidden;

            using (Process p = Process.Start(startInfo))
            {
                while (!p.HasExited)
                {
                    Thread.Sleep(300);
                }
            }

            //Process.Start(startInfo);

            Console.WriteLine(string.Format("Compressing file: '{0}'", fileName.ToString()));

            // generate final string
            FileInfo inFile = new FileInfo(fileName);
            FileInfo outFile = new FileInfo(fileName + ".xz");

            outputCacheMeta.WriteLine("<ContentFile Name=\"" + fileName.ToString() + "\" Size=\"" + inFile.Length.ToString() + "\" SHA1Hash=\"" + HashCalc.GetSHA1Hash(fileName).ToString() + "\" CompressedSize=\"" + outFile.Length.ToString() + "\" />");
            //Console.WriteLine(string.Format(("<ContentFile Name=\"" + fileName.ToString() + "\" Size=\"" + inFile.Length.ToString() + "\" SHA1Hash=\"" + HashCalc.GetSHA1Hash(fileName).ToString() + "\" CompressedSize=\"" + outFile.Length.ToString() + "\" />")));
        }
    }

出力ファイル (output.txt) のすべてを出力するわけではなく、次のように出力します: http://pastebin.com/1vTQZVih (外部リンクは申し訳ありません)。

問題は、出力ファイルへの書き込みが突然「停止」することです。

ありがとう!

4

1 に答える 1