GetFileNameWithoutExtension return empty string on filename with no extension
mircoboschi opened this issue · comments
When calling ZlpPathHelper.GetFileNameWithoutExtension
with a filename without extension,
the function is returning an empty string.
The correct return value should be the whole filename, as it doesn't contain extension.
@mircoboschi I've just added a bunch of unit tests. I cannot confirm your experience.
Can you give me an example on how I can see the misbehaviour, too?
Here are my additional tests:
s1 = @"c:\folder1\folder2\folder3\file1.txt";
s3 = ZlpPathHelper.GetFileNameFromFilePath(s1);
s4 = Path.GetFileName(s1);
Assert.AreEqual(s3, s4);
// --
s1 = @"c:\folder1\folder2\folder3\file1";
s3 = ZlpPathHelper.GetFileNameFromFilePath(s1);
s4 = Path.GetFileName(s1);
Assert.AreEqual(s3, s4);
// --
s1 = @"c:\folder1\folder2\folder3\file1.";
s3 = ZlpPathHelper.GetFileNameFromFilePath(s1);
s4 = Path.GetFileName(s1);
Assert.AreEqual(s3, s4);
// --
s1 = @"file1.txt";
s3 = ZlpPathHelper.GetFileNameFromFilePath(s1);
s4 = Path.GetFileName(s1);
Assert.AreEqual(s3, s4);
// --
s1 = @"file1";
s3 = ZlpPathHelper.GetFileNameFromFilePath(s1);
s4 = Path.GetFileName(s1);
Assert.AreEqual(s3, s4);
// --
s1 = @"file1.";
s3 = ZlpPathHelper.GetFileNameFromFilePath(s1);
s4 = Path.GetFileName(s1);
Assert.AreEqual(s3, s4);
// --
s1 = @"c:\folder1\folder2\folder3\file1.txt";
s3 = ZlpPathHelper.GetFileNameWithoutExtension(s1);
s4 = Path.GetFileNameWithoutExtension(s1);
Assert.AreEqual(s3, s4);
// --
s1 = @"c:\folder1\folder2\folder3\file1";
s3 = ZlpPathHelper.GetFileNameWithoutExtension(s1);
s4 = Path.GetFileNameWithoutExtension(s1);
Assert.AreEqual(s3, s4);
// --
s1 = @"c:\folder1\folder2\folder3\file1.";
s3 = ZlpPathHelper.GetFileNameWithoutExtension(s1);
s4 = Path.GetFileNameWithoutExtension(s1);
Assert.AreEqual(s3, s4);
// --
s1 = @"file1.txt";
s3 = ZlpPathHelper.GetFileNameWithoutExtension(s1);
s4 = Path.GetFileNameWithoutExtension(s1);
Assert.AreEqual(s3, s4);
// --
s1 = @"file1";
s3 = ZlpPathHelper.GetFileNameWithoutExtension(s1);
s4 = Path.GetFileNameWithoutExtension(s1);
Assert.AreEqual(s3, s4);
// --
s1 = @"file1.";
s3 = ZlpPathHelper.GetFileNameWithoutExtension(s1);
s4 = Path.GetFileNameWithoutExtension(s1);
Assert.AreEqual(s3, s4);
Here is an example call:
GetFileNameWithoutExtension(@"\\?\C:\Simulazioni\Albero\scratch_file");
This call returns an empty string.
Sorry, I've tried again and still cannot confirm.
These three tests succeed:
var r = ZlpPathHelper.GetFileNameWithoutExtension(@"\\?\C:\Simulazioni\Albero\scratch_file.txt");
Assert.AreEqual(r, @"scratch_file");
r = ZlpPathHelper.GetFileNameWithoutExtension(@"\\?\C:\Simulazioni\Albero\scratch_file.");
Assert.AreEqual(r, @"scratch_file");
r = ZlpPathHelper.GetFileNameWithoutExtension(@"\\?\C:\Simulazioni\Albero\scratch_file");
Assert.AreEqual(r, @"scratch_file");
I've found that i was running 1.0.0.6 version, that seems to expose this behaviour.
Updating the library to 1.0.0.8 seems to fix the issue.