オーディオファイルを保存するための一時フォルダを作成しました。私の意図は、オーディオファイルを1つのファイルに結合した後、この一時フォルダを削除することです。ここでCを使用してコンテンツを削除した後にフォルダを削除する
はディレクトリdirectoryName
内の一時ファイルを作成し、自分のコードの一部です:すべての一時ファイルを結合し
fileName = fileCounter.ToString() + ".wav";
fileCounter++;
fileName = directoryName + "\\" + fileName;
コードは次のとおりです。
public void Concatenate(string outputFile, List<string> sourceFiles)
{
byte[] buffer = new byte[1024];
WaveFileWriter waveFileWriter = null;
try
{
foreach (string sourceFile in sourceFiles)
{
using (WaveFileReader reader = new WaveFileReader(sourceFile))
{
if (waveFileWriter == null)
{
// first time in create new Writer
waveFileWriter = new WaveFileWriter(outputFile, reader.WaveFormat);
}
else
{
if (!reader.WaveFormat.Equals(waveFileWriter.WaveFormat))
{
throw new InvalidOperationException("Can't concatenate WAV Files that don't share the same format");
}
}
int read;
while ((read = reader.Read(buffer, 0, buffer.Length)) > 0)
{
waveFileWriter.WriteData(buffer, 0, read);
}
}
}
}
finally
{
if (waveFileWriter != null)
{
waveFileWriter.Dispose();
}
}
}
私はこのquestionからの助けがありました
ファイルを削除するコードです。
private void DeleteDirectory()
{
string[] files = Directory.GetFiles(directoryName);
foreach (string file in files)
{
File.Delete(file);
}
Directory.Delete(directoryName);
}
しかし、質問のコードは、フォルダ内のファイルのみを削除しました。しかし、私も同様にフォルダを削除したい。
私が知る限り、Directory.Deleteをtrueに設定すると、含まれているすべてのファイルとサブディレクトリを削除でき、ループは必要ありません。 –
簡単に答えが見つかりました:https:// stackoverflow。com/questions/1288718/how-to-delete-all-files-and-a-directory –