如果已存在,我想在同一个地方复制文件,然后名称应该与我们在Windows中手动执行的副本连接。
FileName
: - MyPresentation.pptx to Mypresentation - copy 1.pptx
我只找到了这段代码
FileIO.FileSystem.CopyFile(sourceFileName, desFileName)
IO.File.Copy(sourceFileName, desFileName)
只允许过度写入并抛出下一个副本的异常。
答案 0 :(得分:1)
这是一个简单的解决方案 - 一种迭代每个文件和用户计数器以命名文件的算法
Dim sourceFileName As String = "C:\Users\itapi\Desktop\2a.png"
Dim NewFile As String = ""
Dim count As Integer = 1
While FileIO.FileSystem.FileExists(sourceFileName)
NewFile = sourceFileName + "(" + count.ToString + ")"
End While
IO.File.Copy(sourceFileName, NewFile)
答案 1 :(得分:0)
我并不是真正意识到自动方法,但我之前已经实现了类似的功能,如果你删除了一个文件,这就像windows一样。可能有帮助 -
string formatingString = " Copy ({0})";
string originalDestinationName = "E:\\MyPresentation.txt";
string sourceFileName = "C:\\Data\\MyPresentation.txt";
int counter = 0;
string actualDestinationPath = originalDestinationName;
string fileNameWithoutExt = Path.GetFileNameWithoutExtension(originalDestinationName);
string actualDestinationDirectory = Path.GetDirectoryName(originalDestinationName);
string ext = Path.GetExtension(originalDestinationName);
//Check if the file exisits
while (File.Exists(actualDestinationPath))
{
counter ++;
actualDestinationPath = actualDestinationDirectory + fileNameWithoutExt + string.Format(formatingString,counter) + ext;
}
File.Copy(sourceFileName, actualDestinationPath);
答案 2 :(得分:-1)
如果文件已存在,为什么不创建新文件并从源读取内容并将其写入新文件。