Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >检查文件是否为Freepascal中的符号链接

检查文件是否为Freepascal中的符号链接
EN

Stack Overflow用户
提问于 2012-12-05 11:48:55
回答 4查看 962关注 0票数 1

我正在使用here中描述的FindFirst / FindNext函数读取各种文件和目录。

我唯一的问题是,我不能确定这个文件是否是符号链接。在文件属性中,没有常量或标志,我也找不到用于测试符号链接的函数。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-12-06 10:33:57

你最初使用findfirst的想法是最好的,因为它是一个可移植的解决方案(windows现在也有符号链接)。唯一需要适应的是在传递给findfirst的属性中请求符号链接检查:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uses sysutils;

var info : TSearchrec;

begin
  // the or fasymlink in the next file is necessary so that findfirst
  //     uses (fp)lstat instead of (fp)stat
  If FindFirst ('../*',faAnyFile or fasymlink ,Info)=0 then
     begin
    Repeat
      With Info do
        begin
        If (Attr and fasymlink) = fasymlink then
           Writeln('found symlink: ', info.name)
        else
           writeln('not a symlink: ', info.name,' ',attr);
        end;
    Until FindNext(info)<>0;
    end;
  FindClose(Info);
end.
票数 2
EN

Stack Overflow用户

发布于 2012-12-05 12:20:17

您可以从BaseUnix使用fpstat:

像这样的东西

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
uses baseUnix;
var s: stat;
fpstat(filname, s);
if s.st_mode = S_IFLNK then
  writeln('is link');

这也为您提供了许多有关该文件的其他信息(时间、大小...)

票数 2
EN

Stack Overflow用户

发布于 2012-12-05 14:12:53

函数fpLStat就是答案:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var
  fileStat: stat;

begin 
  if fpLStat('path/to/file', fileStat) = 0 then
  begin
    if fpS_ISLNK(fileStat.st_mode) then
      Writeln ('File is a link');
    if fpS_ISREG(fileStat.st_mode) then
      Writeln ('File is a regular file');
    if fpS_ISDIR(fileStat.st_mode) then
      Writeln ('File is a directory');
    if fpS_ISCHR(fileStat.st_mode) then
      Writeln ('File is a character device file');
    if fpS_ISBLK(fileStat.st_mode) then
      Writeln ('File is a block device file');
    if fpS_ISFIFO(fileStat.st_mode) then
      Writeln ('File is a named pipe (FIFO)');
    if fpS_ISSOCK(fileStat.st_mode) then
      Writeln ('File is a socket');
  end;
end.

打印输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
test_symlink
File is a link
test
File is a directory
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13722613

复制
相关文章
C#嵌入子窗体,判断子窗体是否打开了
/// <summary> /// 嵌入子窗体,判断子窗体是否打开了 /// </summary> public static Form1 f; public void Form1Show() { if (f == null || f.IsDisposed) { f = new Form1 {
landv
2019/03/19
2K0
C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用)
本文转载:http://www.csframework.com/archive/2/arc-2-20110805-1771.htm
跟着阿笨一起玩NET
2018/09/18
8.4K0
C# 子窗体中调用父窗体中的方法(或多窗体之间方法调用)
c# winform 窗体失去焦点关闭(钩子实现)
main函数里面写 Application.ApplicationExit += Application_ApplicationExit;
冰封一夏
2019/09/10
2.9K0
c# 窗体最小化后截图实现
我们知道,当我们需要对Control进行截图时,我们可以使用Control.DrawToBitmap()进行截图,
冰封一夏
2019/09/11
1.2K0
窗体构造函数——c#
c#窗体构造函数比窗体加载函数Form1_Load()还要早,构造窗体最先运行的函数
vv彭
2020/12/16
1.3K0
c# 停靠窗体
public partial class FrmAnchor : Form, IMessageFilter { public FrmAnchor(Control parentControlc, Control keyControl) { InitializeComponent(); this.Size = keyControl.Size; this.HandleCreated += FrmDow
冰封一夏
2019/09/11
1K0
C# winform美化窗体
大家好,又见面了,我是你们的朋友全栈君。 记录一下winform美化工具CSkin 一个.Net的UI库。 参考链接:https://blog.csdn.net/yyl7727/article
全栈程序员站长
2022/09/01
1.3K0
弹出的模式窗体控制父窗体的方法
var strUrl = ‘test.php’; window.showModalDialog(strUrl, window, “dialogWidth:800px; dialogHeight:600px; dialogHide:yes; scroll:no; status:no”);
魏杰
2022/12/23
1.4K0
c# Winform 加载窗体
先来一个加载窗体代码 1 public partial class FrmLoading : Form 2 { 3 public BackgroundWorker updateDBWorker=new BackgroundWorker(); 4 5 public Action BackgroundWorkAction 6 { 7 get; 8 set; 9 } 10
冰封一夏
2019/09/10
1.5K0
C# 窗体常用API函数 应用程序窗体查找
常用的处理窗体的API函数如下(注意:API函数必须放在窗体中...): 使用C#语言,要引用DllImport,必须要添加using System.Runtime.InteropServices命名空间 (1)获得当前前台窗体句柄 [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]public static extern IntPtr GetForegroundWindow(); 返回值类型是IntPtr,即为当前
逸鹏
2018/04/10
4K0
C#将子窗体填充到父窗体的panel中
这里此窗体为lvlv_CauseForm 窗体,new一个窗体对象cf后,进行填充,代码如下:
恋喵大鲤鱼
2018/08/03
3.2K0
c#窗体应用程序怎么保存_importedfile用什么打开
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/09
6780
C# winform 窗体缩放失真
修改项目的配置文件,使项目运行时自动检测屏幕分辨率,在高分辨率屏幕禁用系统缩放,在项目应用程序清单文件里有对禁用高分屏自动缩放的支持
chuchur
2023/04/24
1.2K0
C#子窗体精确定位到父窗体的某个位…
弹出的子窗体精确定位在父窗体的某个位置,需要有目标坐标(这里将子窗体的位置设置为父窗体中一个panel的位置,需要将panel的坐标转换成屏幕坐标)
恋喵大鲤鱼
2018/08/03
1.4K0
C# Winform 窗体美化(目录)
最近在看 C# Winform 的窗体美化,发现一些很有用的美化皮肤库,学习过后也把一些资料整理一下。
全栈程序员站长
2022/09/02
1.5K0
C# WPF MVVM模式下在主窗体显示子窗体并获取结果
在winform中打开一个新的子窗体很简单,直接实例化窗体并show一下就可以:
用户9127601
2021/11/01
1.8K0
C# 线程中操作窗体控件
方法1: CheckForIllegalCrossThreadCalls = false;
zls365
2020/08/19
1.1K0
C# 线程中操作窗体控件
.NET CORE(C#) WPF亚克力窗体
使用 .Net Core 3.1 创建名为 “AcrylicWindow” 的WPF模板项目,添加三个Nuget库:MaterialDesignThemes、MaterialDesignColors和FluentWPF,其中亚克力效果是由FluentWPF控件库实现的。
沙漠尽头的狼
2020/01/16
2.3K0
【C#】带等待窗体的BackgroundWorker
---------------201504170911更新---------------
AhDung
2018/09/13
1.8K0
【C#】带等待窗体的BackgroundWorker
c#子窗口与父窗口_主窗体控制子窗体的显示
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170914.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/23
2.6K0

相似问题

关闭第二个窗体后,将textbox放在主窗体上

40

从第三个窗体打开第二个窗体

30

C#父窗体打开子窗体,在父窗体关闭后调用子函数。

13

vb。net等待第二个窗体关闭,然后再继续

30

c#关闭窗体更改值打开新窗体

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文