всегда создавать новый файл, если файл уже существует с тем же местоположением в C # - PullRequest
1 голос
/ 11 марта 2011

Я создал новый файл, используя код ниже.Но если файл уже существует, мне нужно создать новый файл с другим именем файла.Возможно ли это?

FileStream fs = new FileStream(filePath, FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
BinaryWriter bw = new BinaryWriter(fs);

bw.Write(b);
bw.Close();
fs.Dispose();

мое место сохранения файла такое же.

Ответы [ 3 ]

3 голосов
/ 11 марта 2011

Если вы используете FileMode.CreateNew, будет выдано исключение, если файл уже существует.

CreateNew Указывает, что операционная система должна создать новый файл.Для этого требуется FileIOPermissionAccess.Write.Если файл уже существует, генерируется IOException.http://msdn.microsoft.com/en-us/library/system.io.filemode.aspx

Вы можете использовать его вместе с File.Exists, чтобы уменьшить вероятность исключения, но использование File.Exists проблематично.Файл может быть создан между вашей проверкой и открытием.Если маловероятно, что файл существует (например, вы используете случайно сгенерированное имя), пропустите проверку File.Exists полностью.

1 голос
/ 11 марта 2011

Конечно, вы можете использовать File.Exists(filePath), чтобы проверить, существует ли уже существующий файл, и выбрать другое имя в этом случае.

0 голосов
/ 11 марта 2011

Конечно, вы можете использовать:

 int i = 0;
 while (File.Exists(filename))
 {
   i++;
   filename = filename + i.ToString();
 }
 // save the File
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...