wpf 创建文件夹层次结构

p8h8hvxi  于 2022-11-18  发布在  其他
关注(0)|答案(1)|浏览(189)

所以我用NAudio把mp3转换成wav
范例

string InputAudioFilePath = @"C:\Users\sdkca\Desktop\song.mp3";
string OutputAudioFilePath = @"C:\Users\sdkca\Desktop\song_converted.wav";

using (Mp3FileReader reader = new Mp3FileReader(InputAudioFilePath, wf => new Mp3FrameDecompressor(wf)))
{
    WaveFileWriter.CreateWaveFile(OutputAudioFilePath, reader);
}

在我的视图模型中,我将执行以下操作
1.我正在获取Documents文件夹

private static readonly string DocumentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

1.那我就这么做

const string ext = ".wav";

var dlg = new OpenFileDialog
              {
                  Filter = Constants.FILEFILTER
              };

var res = dlg.ShowDialog();

if (res! == true)
{
    var AudioName = Path.GetFileNameWithoutExtension(dlg.FileName);
    var FoderParent = Path.Combine(DocumentsPath, Constants.TRANSCRIPTIONS);
    var ParentSubFolder = Path.Combine(FoderParent, Constants.AUDIO);
    var filename = Path.Combine(ParentSubFolder, $"{AudioName}{ext}");

    using var mp3 = new Mp3FileReader(dlg.FileName);
    using var ws = WaveFormatConversionStream.CreatePcmStream(mp3);
    WaveFileWriter.CreateWaveFile(filename, ws);
}

我收到此错误
系统.IO.目录未找到异常:找不到路径“C:\Users\egome\OneDrive -马德里政治大学\文档\转录\音频\10.wav "的一部分。
我不明白的是,我正在我的文件夹和一个新的fileName.wav之间进行合并,这是该方法所要求的

ggazkfy8

ggazkfy81#

在创建filename字符串之前添加此检查

if(!Directory.Exists(ParentSubFolder))
    Directory.CreateDirectory(ParentSubFolder);
var filename = Path.Combine(ParentSubFolder, $"{AudioName}{ext}");

这样,您可以确保所有路径部分都存在。

相关问题