在不合时宜的时刻我几次反对这个问题:
为什么存在此限制?
为什么还没有被删除?
你如何应对路径限制?...而且,切换到Linux或Mac OS X不是这个问题的有效答案;)
我发现自己这么做只是为了确保文件名不被使用.有没有更好的办法?
Directory.Exists(name) || File.Exists(name)
Run Code Online (Sandbox Code Playgroud) 我的方式File.Exists()(不)工作有问题:当我使用它时,它声称该文件不存在(来自立即窗口):
filePath
"P:\\poolman\\LY21\\2015\\LY21_2015-03-25_03.xml"
File.Exists(filePath)
false
Run Code Online (Sandbox Code Playgroud)
但是,如果我将文件路径复制/粘贴到资源管理器窗口URL(删除转义\),则会打开该文件.
因此File.Exists()声称现有的文件不存在会让我感到烦恼.
这不是路径的长度(43),FileInfo并不是这里建议的更好的选择.
这是FileInfo检查的结果:
var f = new FileInfo(filePath);
{P:\poolman\LY21\2015\LY21_2015-03-25_03.xml}
base: {P:\poolman\LY21\2015\LY21_2015-03-25_03.xml}
_name: "LY21_2015-03-25_03.xml"
Directory: {P:\poolman\LY21\2015}
DirectoryName: "P:\\poolman\\LY21\\2015"
Exists: false
IsReadOnly: true
Length: '(var f = new FileInfo(filePath);).Length' threw an exception of type 'System.IO.FileNotFoundException'
Name: "LY21_2015-03-25_03.xml"
Run Code Online (Sandbox Code Playgroud)
我怎么处理它?
我目前正在开发Windows 10 UWP应用程序.应用程序需要检查是否存在名为"01-introduction"的某个PDF文件,如果存在则打开它.如果文件不存在,我已经有了代码.以下代码是我目前拥有的:
try
{
var test = await DownloadsFolder.CreateFileAsync("01-Introduction.pdf", CreationCollisionOption.FailIfExists);
}
catch
{
}
Run Code Online (Sandbox Code Playgroud)
此代码无法正常工作,因为检查文件是否存在此处,我尝试创建该文件.但是,如果该文件尚不存在,则将创建一个空文件.如果文件不存在,我不想创建任何内容,只要打开PDF就可以.
如果可能的话,我想查看名为"我的手册"的下载文件夹中的文件夹.
任何帮助将不胜感激.
c# pdf win-universal-app windows-10-mobile windows-10-universal
我试图在C#中使用各种文件函数File.GetLastWriteTime,复制命令放在路径上的文件大于Windows 7上的最大允许路径,即260.它给我一个长路径名错误.在MSDN支持上,他们要求使用\\?\前面的路径.我做了同样的但仍然得到了同样的错误,它似乎没有做任何改变.以下是我的代码.如果我正确使用它或者我需要添加任何东西,请告诉我:
这些我正在使用的所有lib作为代码还有其他东西:
以下是各自的代码:
filesToBeCopied = Directory.GetFiles(path,"*",SearchOption.AllDirectories);
for (int j = 0; j < filesToBeCopied.Length; j++)
{
try
{
String filepath = @"\\?\" + filesToBeCopied[j];
File.GetLastWriteTime(filepath);
}
catch (Exception ex)
{
MessageBox.Show("Error Inside the single file iteration for the path:" +
filesToBeCopied[j] + " . The exception is :" + ex.Message);
}
}
Run Code Online (Sandbox Code Playgroud)
其中path是Windows机器上以驱动器号开头的文件夹的路径.例如:d:\abc\bcd\cd\cdc\dc\..........