2016-12-22 10 views
1

イメージファイルのセットを1つのパスフォルダから別のフォルダにコピーします。しかし、エラーが発生しました:私は試してみましたパスファイルのコピー中にエラーが発生しました

無効な文字を...

string pathImg = "C" + ":\\compaynameSupportFileImg"; 

if (!Directory.Exists(pathImg)) 
{ 
    DirectoryInfo di = Directory.CreateDirectory(pathImg); 
    di.Attributes = FileAttributes.Directory | FileAttributes.Hidden; 
    string[] jpgFilesNames = Directory.GetFiles(
     @"C:\Program Files (x86)\compayname\name", "*.jpg", SearchOption.AllDirectories); 

    string targetDirectoryImg = pathImg + "\\*.jpg"; 
    foreach (var item in jpgFilesNames) 
    { 
     File.Copy(item, targetDirectoryImg, true); 
    } 
} 
+3

ターゲットパスに* .jpgを付けることはできません。ソースファイルをコピーするディレクトリだけにする必要があります。 – itsme86

+0

@ itsme86はいはいimage.jpgファイル全体を別のフォルダにコピーしたいと思います。どうやって ? – AbhiJA

+0

* source *は* .jpgです。* target *は単なるディレクトリ名です。 – Duston

答えて

3

ちょうど使用:

string pathImg = "C" + ":\\compaynameSupportFileImg"; 
if (!Directory.Exists(pathImg)) 
{ 
    DirectoryInfo di = Directory.CreateDirectory(pathImg); 
    di.Attributes = FileAttributes.Directory | FileAttributes.Hidden; 
    string[] jpgFilesNames = Directory.GetFiles(@"C:\Program Files (x86)\compayname\name", "*.jpg", SearchOption.AllDirectories); 
    foreach (var item in jpgFilesNames) 
    { 
     File.Copy(item, Path.Combine(pathImg, Path.GetFileName(item)), true); 
    } 
} 

あなたがここにtargetDirectoryImgは必要ありません。 C:\compaynameSupportFileImg\*.jpgのような値を持ち、ターゲットフォルダへのパスではないため、

+0

本当ですか? [ドキュメント](https://msdn.microsoft.com/en-us/library/c6cfw35a(v = vs.110).aspx)によれば、 'File.Copy'の2番目のパラメータはファイル名でなければなりません。ディレクトリ名ではないかもしれません( "...これはディレクトリではありません...")。 –

+0

@UweKeim Ohh、ありがとう。私の悪い。私はすでにそれを修正しました。 – Marusyk

+0

ありがとうございました!そのうまくいく... :) – AbhiJA

関連する問題