Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 27 additions & 7 deletions CodeWalker/ExploreForm.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2322,8 +2322,6 @@ public string SelectFolder()
}




private void ViewSelected()
{
for (int i = 0; i < MainListView.SelectedIndices.Count; i++)
Expand All @@ -2350,6 +2348,28 @@ private void ViewSelectedHex()
}
}
}

private string GetUniquePath(string folder, string name)
{
try
{
var baseName = Path.GetFileNameWithoutExtension(name);
var ext = Path.GetExtension(name);
var candidate = Path.Combine(folder, name);
int i = 1;
while (File.Exists(candidate))
{
candidate = Path.Combine(folder, string.Format("{0}({1}){2}", baseName, i, ext));
i++;
}
return candidate;
}
catch
{
return Path.Combine(folder, name);
}
}

private void ExportXml()
{
var needfolder = false;//need a folder to output ytd XML to, for the texture .dds files
Expand Down Expand Up @@ -2412,7 +2432,7 @@ private void ExportXml()
var xml = GetFileXml(file, out var newfn, folderpath, errorAction);
if (string.IsNullOrEmpty(xml)) continue;

var path = folderpath + newfn;
var path = GetUniquePath(folderpath, newfn);
try
{
File.WriteAllText(path, xml);
Expand Down Expand Up @@ -2477,7 +2497,7 @@ private void ExtractRaw()
var file = CurrentFiles[idx];
if ((file.Folder == null) || (file.Folder.RpfFile != null))
{
var path = folderpath + file.Name;
var path = GetUniquePath(folderpath, file.Name);
try
{
var data = GetFileDataCompressResources(file);
Expand Down Expand Up @@ -2548,7 +2568,7 @@ private void ExtractUncompressed()
var file = CurrentFiles[idx];
if (file.Folder == null)
{
var path = folderpath + file.Name;
var path = GetUniquePath(folderpath, file.Name);
var data = GetFileData(file);
if (data == null)
{
Expand Down Expand Up @@ -2586,7 +2606,7 @@ private void ExtractAll()
{
if ((file.Folder == null) || (file.Folder.RpfFile != null))
{
var path = folderpath + file.Name;
var path = GetUniquePath(folderpath, file.Name);
try
{
var data = GetFileDataCompressResources(file);
Expand Down Expand Up @@ -3958,7 +3978,7 @@ private void MainListView_ItemDrag(object sender, ItemDragEventArgs e)
try
{
var data = GetFileDataCompressResources(file);
var filename = Path.Combine(outdir, file.Name);
var filename = GetUniquePath(outdir, file.Name);
File.WriteAllBytes(filename, data);
if (addfilename)
{
Expand Down